[JAVA] Ich habe versucht, TestNG zu verwenden

Ich habe mich gerade beurlaubt, als ich wegen Java6 aus Unterstützung in Flammen stand, und bin der Schwierigkeit entkommen. Ich frage mich, was mit JUnit3 oder der Testklasse von djUnit passiert ist (es scheint vorerst zu funktionieren).

Deshalb habe ich schon jetzt versucht, TestNG zu verwenden.

Vorbereitung

Fügen Sie mit Maven die folgenden Abhängigkeiten hinzu, und Sie können loslegen.

pom.xml (Kopieren strengstens untersagt)


<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.14.3</version>
    <scope>test</scope>
</dependency>

Ich habe Maven selbst kaum benutzt, aber wenn ich die Beschreibung von pom.xml kopiere und neu schreibe, wird dies mit hoher Wahrscheinlichkeit einen Unfall verursachen. Tatsächlich war der Umfang beim Kopieren und Einfügen falsch, und obwohl es funktionierte, wurde testng-6.14.3.jar in das zu implementierende Archiv aufgenommen. Stellen Sie sicher, dass Sie die automatische IDE-Vervollständigung verwenden.

Es mag ziemlich viele Leute geben, die es benutzt haben, aber nicht wissen, wie man pom.xml schreibt.

Machen Sie einen Testfall

Dies ist eine Testklasse in JUnit. Es ist ziemlich ähnlich. Wenn Sie JUnit4 verwendet haben, werden Sie nicht verwirrt sein.

LogoutBeanTest.java


public class LogoutBeanTest {

    /**Getestete Klasse*/
    private LogoutBean logoutBean;

    @Test
    public void logout() throws Exception {
        String result = logoutBean.logout();

        //Überprüfung der Ergebnisse
        assertEquals(logoutBean.getMessage(), "abgemeldet");
        assertEquals(result, "/logout/logout.jsf");
    }

    @BeforeMethod
    public void setUpMethod() throws Exception {
        logoutBean = new LogoutBean();
    }
}

Ich war ein wenig besorgt, dass die Reihenfolge der Argumente von "assertEquals ()" die Umkehrung von JUnit ist. In JUnit steht das erwartete Ergebnis (erwartet) an erster Stelle, in TestNG steht das tatsächliche Ergebnis (tatsächlich) an erster Stelle. Es gab jedoch einige Leute, die in JUnit das Gegenteil geschrieben haben ...

Erstellen Sie eine Testsuite

Sie können mehrere Testklassen in XML verwalten. Wenn Sie TestNG über die Befehlszeile ausführen, ist es praktisch, mehrere Testklassen gleichzeitig aufrufen zu können, aber ich habe den Vorteil in der IDE nicht gefunden.

testng.xml


<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="cc.cress.sample">
    <test name="Login">
        <classes>
            <class name="cc.cress.sample.login.LoginBeanTest"/>
            <class name="cc.cress.sample.util.PasswordEncrypterTest"/>
        </classes>
    </test>
    <test name="Logout">
        <classes>
            <class name="cc.cress.sample.logout.LogoutBeanTest"/>
        </classes>
    </test>
</suite>

Danach habe ich PowerMockito (Scheinobjekt) und Jacoco (Coverage Acquisition) eingeführt, aber es ist ziemlich umfangreich geworden, also bin ich hier.

Recommended Posts

Ich habe versucht, TestNG zu verwenden
Ich habe versucht, Gson zu benutzen
Ich habe versucht, Galasa zu benutzen
Ich habe versucht, Azure Cloud-Init zu verwenden
Ich habe versucht, Apache Wicket zu verwenden
Ich habe versucht, Java REPL zu verwenden
Ich habe jetzt versucht, Anakia + Jing zu verwenden
Ich habe versucht, Spring + Mybatis + DbUnit zu verwenden
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe versucht, JWT in Java zu verwenden
[Android] Ich habe versucht, das Koordinatorlayout zu verwenden.
Ich habe versucht, Pari GP Container zu verwenden
Ich habe versucht, WebAssembly Stadio (Version 2018/4/17) zu verwenden.
Ich habe versucht, Java Memo LocalDate zu verwenden
Ich habe versucht, Google HttpClient von Java zu verwenden
Ich habe es mit Spring versucht.
Ich habe versucht, Tomcat zu setzen
Ich habe youtubeDataApi ausprobiert.
Ich habe versucht, ① umzugestalten
Ich habe FizzBuzz ausprobiert.
Ich habe JHipster 5.1 ausprobiert
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Ich habe versucht, Realm mit Swift UI zu verwenden
Ich habe versucht, das Java-Diagnosetool Arthas zu verwenden
Ich habe versucht, UICollectionViewListCell zu verwenden, das von Xcode12 hinzugefügt wurde.
Ich habe versucht, Scalar DL mit Docker zu verwenden
Ich habe versucht, OnlineConverter mit SpringBoot + JODConverter zu verwenden
Es ist neu, aber ich habe versucht, Groonga zu verwenden
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
[Ich habe es versucht] Spring Tutorial
Ich habe versucht, Junit mit Mac VScode Maven zu verwenden
[Für Anfänger] Ich habe versucht, DBUnit mit Eclipse zu verwenden
Ich habe versucht, Autoware auszuführen
[Für Anfänger] Ich habe versucht, JUnit 5 mit Eclipse zu verwenden
[Android] Ich habe SQLite beendet und versucht, Realm zu verwenden
Ich habe sofort QUARKUS ausprobiert
Ich habe mit Ruby einen Blackjack gemacht (ich habe versucht, Minitest zu verwenden)
Ich habe Spring Batch ausprobiert
[API] Ich habe versucht, die Postleitzahlensuch-API zu verwenden
Ich habe versucht, node-jt400 (Programme)
Ich habe versucht, node-jt400 (ausführen)
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, den Profiler von IntelliJ IDEA zu verwenden
Ich habe versucht, node-jt400 (Transaktionen)
Ich habe versucht, eine Datenbankverbindung in der Android-Entwicklung zu verwenden
Ich habe versucht, die Server-Push-Funktion von Servlet 4.0 zu verwenden
Ich habe versucht, den KMS-Dienst (Key Management Service) von Alibaba Cloud zu verwenden
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
Ich habe versucht, das Migration Toolkit für Anwendungsbinärdateien zu verwenden
Ich habe versucht, Log4j2 auf einem Java EE-Server zu verwenden
Ich habe versucht, YOLO v4 unter Ubuntu und ROS zu verwenden
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
Ich habe versucht, ein Aktienchart mit Java (Jsoup) zu kratzen.
Ich habe versucht, node-jt400 (Umgebungskonstruktion)
Ich habe DI mit Ruby versucht