如何高效进行白盒单测

 
之前为写了写单元测试的基础原理和简单的环境调试,这次就简述一下在进行单元测试是需要注意的东西和基础框架。  

首先,要做好单测,首先要捋清楚开发的代码结构,为成功搭建单测环境奠定基础。对于一个比较复杂的代码工程,首先要找到程序初始化的入口,明确初始化需要的成员变量和初始化的步骤逻辑,然后找到程序的主要接口,明确各个接口的作用,如果有明确提测接口,就按提测接口一层层剖析下去。   

还需注意程序的公用类,在测试准备阶段,大致了解公用接口的作用,方便测试过程中调用,也利于提高代码复用性。  

那怎么提高单元测试的效率呢?  
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 自动化测试平台
点赞 回复 分享
发布于 2016-11-23 17:15

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结: 27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务