-
Notifications
You must be signed in to change notification settings - Fork 32
moye unit test guide
author @chriswong @jinzhubaofu
moye
目前依靠 grunt
工具,搭建了基于 jasmine
和 karma
的单测环境。环境可以通过以下命令搭建:
git clone https://github.com/ecomfe/moye.git
cd moye && sudo npm install
注意
:单测的默认是基于 webkit
内核的 phantomjs
,安装过程中可以能出现下载失败、下载速度慢、需要管理员权限等问题。可以在安装依赖前,在 test/config.js
中先将浏览器更换为 chrome
,并移除 phantomjs
的依赖。另外,开发机上并没有 chrome
,还请在本地调试。
解决npm安装过慢
因为源在国外,可以考虑采用代理安装:
npm config set proxy=http://*.*.*.*:端口
sudo npm install
-
moye
的单测基于前端测试框架jasmine
,版本为1.3。jasmine
语法请参看 jasmine入门; -
单测脚本命名需要符合一定格式:
必须
以Spec
为结尾,若组件名为SomeControl.js
, 那么相应的单测脚本名应为SomeControlSpec.js
。并且放置在test/spec
目录下。 -
每个组件应该基于自己可控范围的 DOM 作操作,避免影响其他组件。在
afterEach
中应该调用组件的dispose
方法并移除自己创建的所有 DOM 及事件监听。
运行单测
grunt test
运行单测,并生成单测覆盖率报告
grunt cover
报告会被生成到 test/coverage
下,在浏览器中查看 test/coverage/index.html
查看结果。
grunt test
和 grunt cover
会在根目录下生成一个 SpecRunner.html
,有问题时可以在浏览器中打开这个文件进行调试。
-
在其他浏览器运行
SpecRunner.html
-
参考下一小节的说明
moye
的默认测试环境为 phantomjs;可以通过修改 Gruntfile.js
中 karma
的配置来更换测试环境;例如将 phantomjs
更换为 chrome
和 firefox
:
karma: {
options: {
configFile: 'test/config.js',
reporters: 'dots',
singleRun: true
},
dev: {
browsers: ['Chrome', 'Firefox']
}
}
然后通过运行grunt karma
来开始测试。