JUnit
JUnit简介
JUnit是一个开源的Java测试框架,用于编写和执行可重复的测试。它是Java开发人员的一个重要工具,用于进行单元测试、回归测试和模块化测试。JUnit提供了一种形式化的方式来编写测试用例,并通过这些测试用例核实代码的正确性。具有可预测的测试用例可以在开发过程中早期发现问题,提高代码的质量和稳定性。JUnit Annotations(例如@Test, @Before等)
JUnit的核心是一组注解,它们用于表示和配置测试方法。以下是一些常见的JUnit的注解:
- @Test: 表示一个测试方法,JUnit会对标注了@Test注解的方法进行测试。
- @Before: 标记的方法会在每个单个@Test标记的方法之前运行,通常用来做一些测试前的准备工作。
- @After: 标记的方法会在每个单个@Test标记的方法之后运行,通常用来做一些清理工作。
- @BeforeClass: 标记的方法会在测试类开始前运行,且只运行一次,通常用来做一些只需初始化一次的工作。
- @AfterClass: 标记的方法会在测试类结束后运行,且只运行一次,通常用来做一次性的清理工作。
JUnit Assertions
JUnit的断言方法用于核实被测代码的行为。如果断言条件为真,则断言成功,否则测试失败。以下是一些常见的JUnit断言方法:
- assertTrue(): 确认条件为真。
- assertFalse(): 确认条件为假。
- assertEquals(): 确认两个值相等。
使用JUnit创建并运行单元测试,创建JUnit单元测试的一般步骤如下:
- 创建一个测试类,一般与被测的类在同一包下且名称以Test为后缀。
- 在测试类中,为要测试的每个方法创建一个公开的void方法,并添加@Test注解。
- 如果需要,可以使用@Before或@After注解来标记需要在每个测试前后运行的方法,或者用@BeforeClass或@AfterClass标记需要在所有测试前后只运行一次的方法。
- 在每个测试方法中,使用断言方法(如assertEquals())来验证被测方法的结果。
TestNG
TestNG简介
TestNG是一个广泛应用的Java测试框架,主要用于所有阶段的测试,包括单元、功能、端到端、集成等。TestNG的设计目标是更全面地覆盖测试类别,如单元测试、功能测试和端到端测试,总的来说,TestNG专为更灵活和强大的测试需求而设计。TestNG和JUnit的区别
- TestNG提供更加灵活的测试配置,可以通过XML或者注解来配置测试。
- TestNG支持数据驱动测试,允许程序开发者方便地编写数据集驱动的测试案例。
- TestNG在测试套件、测试类和测试方法级别支持更为灵活的多线程运行测试。
- TestNG有内置的报表特性,可以生成详细的HTML测试报表。
TestNG Annotations(例如@Test, @BeforeTest等)
TestNG使用注解来作为测试的元数据,这些注解能让你使用一个灵活而强大的测试框架。以下是一些常用的TestNG注解:
- @Test:对应一个测试方法,TestNG会运行这个方法进行测试。
- @BeforeTest:在当前测试类的所有@Test注解的测试方法运行之前,会先运行标记了@BeforeTest注解的方法。
- @AfterTest:在当前测试类的所有@Test注解的测试方法运行之后,会运行标记了@AfterTest注解的方法。
- @BeforeSuite, @AfterSuite: 用于在测试套件的开始和结束时执行。
TestNG Assertions
TestNG断言是为了检查代码在测试执行过程中的行为,一旦设定的条件返回false,那么测试就会停止并标记为失败。Assertions.assert*()方法可以进行断言。使用TestNG创建并运行单元测试
- 创建一个新的Java类读书测试类。
- 在这个类中,添加标注有@Test注解的公共void方法来表示测试方法。
- 如果有需要,可以使用@BeforeTest或@AfterTest注解来定义在每个测试方法运行前后应执行的方法。
- 在测试方法内,使用Assertions类来进行断言,以检查你的代码行为。
- 运行测试,TestNG会自动执行所有标记为@Test的测试方法,并报告