一、单元测试的原则
从不同的角度,可以将测试划分为如下不同的种类:
单元测试是一种自动化测试,测试代码和被测的对象非常相关,比如测试React组件的代码就和测试jQuery的插件的代码完全不是一回事。
单元测试代码一般都由编写对应功能代码的开发者来编写,开发者提交的单元测试代码应该保持一定的覆盖率,而且必须永远能够运行通过。可以说,单元测试是保证代码质量的第一道防线。
开发者应该注意:
首先,即使单元测试覆盖率达到100%,也不表示程序是没有bug的;
另外,程序架构的可测试性非常重要,需要架构能把程序拆分成足够小到方便测试的部分,只要每个小的部分被验证能够正确的各司其职,组合起来能够完成整体功能,那么开发者编写的单元测试就可以专注于测试各个小的部分就行,这就是更高的可测试性。
二、单元测试环境搭建
create-react-app创建的应用中自带了Jest库,Jest会自动在当前目录下寻找满足下列任一条件的JavaScript文件作为单元测试代码来执行:
组织多个it函数实例,即测试套件。
在Jest中用describe函数描述测试套件,一个测试套件的代码如下:
describe('actions',()=>{
it('should return object when invoked',()=>{});
//可以有更多的it函数调用
})
describe函数包含与it函数一样的参数,两者主要的区别就是describe可以包含it或者另一个describe函数调用,但是it却不能。
describe中有如下特殊函数可以帮助重用代码:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。