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.
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.
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 ...
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