测试--测试框架学习
- content
{:toc}
测试框架学习。
测试
基本概念
被测系统 SUT (System Under Test)
表示正在测试的系统,目的是测试系统能否正确操作。
Dummy Object
泛指在测试中必须传入的对象。
Test Stub
测试桩,用来接收SUT内部的间接输入,并返回特定的值给SUT。
Test Spy
像一个间谍,安插在SUT内部,负责将SUT的间接输出传到外部。
Mock Object
和Spy类似,且Mock还负责对输出进行验证。
Fake Object
测试夹具 Test Fixture
即 测试运行程序,会在运行目标测试方法之前自动初始化、资源回收的工作。
测试用例 Test Case
测试套件 Test Suite
如果每次只能运行一个测试用例,则和传统的使用main()
方法进行测试没有区别。手工去一个个执行测试用例,非常繁琐低效。测试套件,即将多个测试用例组装成一个测试套件,测试套件批量运行测试用例。
断言 Assertions
JUnit 4
各个方法之间相互独立 ,一个方法的失败不会导致别的方法失败,方法之间不存在相互依赖的关系,彼此独立。
生命周期
类级初始化资源处理、【方法级初始化资源处理、执行测试用例中的方法、方法级销毁资源处理】、类级销毁资源处理。
类级别的初始化和销毁,一个测试用例类中只执行一次。
方法级别初始化和销毁,执行测试用例中每个测试方法中都会执行一次,以防止测试方法相互间的影响。
测试类中,支持有多个初始化或销毁方法。执行顺序是:多个初始化方法,由后向前。多个销毁方法,由前向后。
使用 JUnit 4
1 | maven: |
测试方法
@Test
标注。
@BeforeClass
@Before
@Test
@After
@AfterClass
@Test(expected=NullPointerException.class)
超时测试
@Test(timeout=10)
参数化测试
@RunWith(Parameterized.class)
测试运行器
通过@RunWith(Xxx.class)
指定
所有测试方法都由测试运行器负责执行,且JUnit默认使用BlockJUnit4ClassRunner
,且可以自己定制运行器。 一般情况下默认的足够,但当使用一些高级特性时,如 从参数化测试、套件测试时,需要显示指定所用的运行器。 通过@RunWith(Xxx.class)
指定。
测试套件
@RunWith(Suite.class)
1 | import org.junit.runner.RunWith; |
Junit 4 断言