JUnit Suite测试 JUnit执行测试 JUnit忽略测试 测试套件 用于捆绑几个单元测试用例并将它们一起运行。在JUnit中, @RunWith 和 @Suite 注释都用于运行套件测试。本章举例说明了使用Test Suite一起运行的两个测试类 TestJunit1 和 TestJunit2 。 创建一个类 创建一个要测试的Java类,例如C:> JUNIT_WORKSPACE中的 MessageUtil.java 。 /* * This class prints the given message on console. */ public class MessageUtil { private String message; //Constructor //@param message to be printed public MessageUtil(String message){ this.message = message; } // prints the message public String printMessage(){ System.out.println(message); return message; } // add "Hi!" to the message public String salutationMessage(){ message = "Hi!" + message; System.out.println(message); return message; } } 创建测试用例类 在C:> JUNIT_WORKSPACE中创建一个名为 TestJunit1.java 的java类文件。 import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestJunit1 { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message, messageUtil.printMessage()); } } 在C:> JUNIT_WORKSPACE中创建一个名为 TestJunit2.java 的java类文件。 import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestJunit2 { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } } 创建测试套件类 创建一个java类。 附加@RunWith(Suite.class)注解与类。 使用@SuiteSuiteClasses注释添加对JUnit测试类的引用。 在C:> JUNIT_WORKSPACE中创建一个名为 TestSuite.java 的java类文件来执行测试用例。 import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ TestJunit1.class, TestJunit2.class }) public class JunitTestSuite { } 创建测试运行器类 在C:> JUNIT_WORKSPACE中创建一个名为 TestRunner.java 的java类文件来执行测试用例。 import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(JunitTestSuite.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } } 使用javac编译所有的java类。 C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit1.java TestJunit2.java JunitTestSuite.java TestRunner.java 现在运行Test Runner,它将运行提供的Test Case类中定义的测试用例。 C:\JUNIT_WORKSPACE>java TestRunner 验证输出。 Inside testPrintMessage() Robert Inside testSalutationMessage() Hi Robert true JUnit执行测试 JUnit忽略测试