创建 JUnit 带有示例的测试套件:@RunWith @SuiteClasses
在 Junit 中,测试套件允许我们将来自多个类的所有测试用例聚合到一个地方并一起运行。
要运行套件测试,您需要使用下面提到的注释来注释一个类:
- @Runwith(Suite.class)
- @SuiteClasses(test1.class,test2.class……)或@Suite.SuiteClasses({test1.class, test2.class……})
通过上述注释,套件中的所有测试类将逐一开始执行。
创建测试套件和测试运行器的步骤
步骤1) 创建一个简单的测试类(例如MyFirstClassTest)并添加一个用@test注释的方法。
步骤2) 创建另一个要添加的测试类(例如 MySecondClassTest)并创建一个用 @test 注释的方法。
步骤3) 要创建 testSuite,您首先需要用 @RunWith(Suite.class) 和 @SuiteClasses(class1.class2…..) 注释该类。
步骤4) 创建一个测试运行器类来运行我们的测试套件,如下所示;
代码说明:
- 代码行8: 声明类测试的 main 方法,它将运行我们的 JUnit 测试。
- 代码行9: 使用 JunitCore.runclasses 执行测试用例,它将测试类名作为参数(在上面的示例中,您使用步骤 3 中显示的 TestSuiteExample.class)。
- 代码行11: 使用for循环处理结果并打印出失败的结果。
- 代码行13: 打印出成功的结果。
输出: 以下是显示测试成功且没有失败痕迹的输出:
JUnit 测试套件示例
考虑一个更复杂的例子
Junit测试.java
JunitTest.java 是一个简单的类,带有注释 @RunWith 和 @套房 注释。您可以列出套件中的 .classes 数量作为参数,如下所示:
package guru99.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ SuiteTest1.class, SuiteTest2.class, }) public class JunitTest { // This class remains empty, it is used only as a holder for the above annotations }
套件测试1.java
套件测试1.java 是一个测试类,它有一个测试方法来打印出如下所示的消息。您将使用此类作为上述类中的一个套件。
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class SuiteTest1 { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage() { System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage() { message = "Hi!" + message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); System.out.println("Suite Test 2 is successful " + message); } }
套件测试2.java
套件测试2.java 是另一个类似的测试类 套件测试1.java 有一个测试方法来打印出如下所示的消息。您将使用此类作为套件 Junit测试.java.
package guru99.junit; import org.junit.Assert; import org.junit.Test; public class SuiteTest2 { @Test public void createAndSetName() { String expected = "Y"; String actual = "Y"; Assert.assertEquals(expected, actual); System.out.println("Suite Test 1 is successful " + actual); } }
输出
执行后 Junit测试.java 包含一个套件 测试1.java 和 测试2.java,你将获得以下输出:
总结
在本教程中,您通过示例详细了解了测试工具和测试套件的基础知识。
- 测试工具或自动化 测试 是一个软件或软件集合,允许用户使用多个输入测试数据并控制执行
- 测试工具实际上实现了一个测试框架,该框架完成了使用测试库执行测试并生成测试报告的所有工作
- 在 Junit 中,测试套件允许我们将许多类的所有测试用例聚合到一个地方并一起运行。