单例测试总结

最近写了比较多的单测,对测试用例做了一下总结。          

网上也有很多讲如何写单例测试的教程和经验总结,而且都比较系统。但这里还是总结一下自己在写单例测试时总结的经验。

1. 经验总结

1).时间和对象          

只对比较稳定的代码写单测。        
从反面讲,还处于经常修改状态的代码是不稳定的代码,针对其写的单测也必然是不稳定的,随着设计和代码的不断更改,单测也需要不断更改。

2). 去除底层依赖          

对一段代码写单测时,其中提供API、IO和DB数据的类或对象应该mock掉,但对这些类也要单独写单测。        
一方面,这些类对系统环境有很大依赖,当环境出现问题时(比如API的服务、DB宕掉),单例测试将不能进行;另一方面,这些类的效率一般比较低,不mock掉会增加单测运行的时间。

3).写单测的误区        

只为覆盖率而写单测。        

因为单测覆盖率往往成为一个系统质量的考核目标,所以在写单测时,可能只为提高单测覆盖率而写单测,过少地从业务的角度去写单测。单测应该是保证系统在各种业务场景下,系统仍能正常工作的工具。行覆盖率或者分支覆盖率的提高,并不代表不同业务场景的覆盖也会提高。

2. 对以后写单测方式改进

1). 建立自己的测试样本工具,比如可以自动生成的不同角色的用户的工具。这样方便或者更能全面地对系统的业务进行自动化测试。

2). 写单测时更多地站在业务的角度,而不是代码的角度。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax