之前为写了写单元测试的基础原理和简单的环境调试,这次就简述一下在进行单元测试是需要注意的东西和基础框架。
首先,要做好单测,首先要捋清楚开发的代码结构,为成功搭建单测环境奠定基础。对于一个比较复杂的代码工程,首先要找到程序初始化的入口,明确初始化需要的成员变量和初始化的步骤逻辑,然后找到程序的主要接口,明确各个接口的作用,如果有明确提测接口,就按提测接口一层层剖析下去。
还需注意程序的公用类,在测试准备阶段,大致了解公用接口的作用,方便测试过程中调用,也利于提高代码复用性。
那怎么提高单元测试的效率呢?
1. 注意测试工程的整体架构设计,把初始化操作提取出来作为公用步骤—减少代码冗余,便于统一修改
2. 每个case要注意保持隔离,不要互相依赖,比如在调用顺序,外部数据操作上。每个case结束要注意恢复测试环境,尤其是对测试数据的影响。
3. 每个case检查点要清晰,深入,不建议一个case测试多个点。
4. 初始化测试期望时,应该尽量与期望状态相反
5. case中的检查阶段,要及时输出。如果检查点处于多重嵌套,建议在代码中输出出错位置—方便及时处理异常。
接下来,写单元测试,一般都会用到一个或多个单元测试框架,JUnit4,今天就简单说说这个。
先需要思考的是单元测试框架能够为我们做什么呢?一个测试框架为我们做的最基本的事情,就是允许我们按照某种更简单的方式写测试代码,把每一个测试单元写在一个测试方法里面,然后它会自动找出所有的测试方法,并且根据你的需要,运行所有的测试方法,或者是运行单个测试方法,或者是运行部分测试方法等等。
举个例:
public class CalculatorTest {
@Test
public void testAdd() throws Exception {
Calculator calculator = new Calculator();
int sum = calculator.add(1, 2);
Assert.assertEquals(3, sum);
}
@Test
public void testMultiply() throws Exception {
Calculator calculator = new Calculator();
int product = calculator.multiply(2, 4);
Assert.assertEquals(8, product);
}
}
很容易看出JUnit4这个测试方法是测试了被测的类的那个方法,或者是测试了那个功能点等等。当然除了帮我们找出所有的测试方法,并且方便运行意外,单元测试框架还能帮我们做其他事情。
相对于白盒单侧的应用方面,我应用的较多的是移动应用上,就是app测试,目前都是基础的了,希望对新手有些帮助。
TestBird - 手游和App自动化测试平台
有疑问加站长微信联系(非本文作者)