如何高效进行白盒单测

Coness · · 2509 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

之前为写了写单元测试的基础原理和简单的环境调试,这次就简述一下在进行单元测试是需要注意的东西和基础框架。 首先,要做好单测,首先要捋清楚开发的代码结构,为成功搭建单测环境奠定基础。对于一个比较复杂的代码工程,首先要找到程序初始化的入口,明确初始化需要的成员变量和初始化的步骤逻辑,然后找到程序的主要接口,明确各个接口的作用,如果有明确提测接口,就按提测接口一层层剖析下去。 还需注意程序的公用类,在测试准备阶段,大致了解公用接口的作用,方便测试过程中调用,也利于提高代码复用性。 那怎么提高单元测试的效率呢? 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自动化测试平台

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2509 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传