Junit单元测试框架

目录

  • 基本概念
  • Assert 断言
  • Junit Fixture
    • @Before 和 @After
    • @BeforeClass 和 @AfterClass 静态方法
  • 参数化测试
    • 单参数
    • 多参数
  • 测试套件
    • 指定类来运行用例
    • 指定包名来运行包下所有的用例

基本概念

  • TestCase:一个 TestCase 表示一个测试
  • TestSuite:一个 TestSuite 包含一组 TestCase,表示一组测试
  • TestFixture:一个 TestFixture 表示一个测试环境
  • TestResult:用于收集测试结果
  • TestRunner:用于运行测试
  • TestListener:用于监听测试过程,收集测试数据
  • Assert:用于断言测试结果是否正确
  • 异常测试:@Test(Exception.class)
  • 超时测试:@Test(timeout=1000
  • 测试用例执行顺序:@Order(1)

Assert 断言

  • 断言相等:assertEquals(100,x)
  • 断言数组相等:assertArrayEquals({1,2,3},x)
  • 浮点数断言相等:assertEquals(3.1416,x,0.0001)
  • 断言为null:assertNull(x)
  • 断言为true/false:assertTrue(x>0)assertFalse(x<0)
  • 其他:assertNotEquals /assertNotNull

Junit Fixture

@Before 和 @After

  1. 实例化测试类对象
  2. 执行 @Before 方法
  3. 执行 @Test 方法
  4. 执行 @After 方法
@Before
public void setUp() {
}

@After
public void tearDown() {
}

@BeforeClass 和 @AfterClass 静态方法

  1. 在执行所有@Test方法前执行 @BeforeClass 静态方法
  2. 执行所有测试
  3. 在执行所有 @Test 方法后执行 @AfterClass 静态方法
  4. @BeforeClass 一般初始化非常耗时的资源,例如创建数据库

参数化测试

单参数

@ParameterizedTest
@ValueSource(strings = {"参数1","参数2",...})
void DemoTest(String str) {
}

多参数

  1. 从注解中手动编写数据源
@ParameterizedTest
@CsvSource({"参数1,参数2","参数3,参数4",...})
void DemoTest(String str,int num) {
}
  1. 从第三方csv文件读取数据源
@ParameterizedTest
@CsvFileSource(files = "D:\\code\\test.csv")
void DemoTest(String str,int num) {
}

测试套件

指定类来运行用例

@Suite
@SelectClasses({a.class,b.class})
public class RunSuite {
}

指定包名来运行包下所有的用例

如果使用包名来指定运行的范围,那么该包下的测试类的命名需要以Test/Tests结尾

@Suite
@SelectPackages("demo")
public class RunSuite {
}

你可能感兴趣的:(测试工具,junit,单元测试,java)