Gol*_*den 27 unit-testing mocha.js angularjs
基本上,我对Mocha很有经验(编写成千上万的单元测试),而且我对AngularJS很新(只写了我的第一个项目).
现在我想知道如何使用Mocha对所有AngularJS内容进行单元测试.
我知道Mocha在浏览器中运行,我已经做过了.但是我如何构建和设置东西呢?
我想我需要:
在每个测试中,我需要加载一个控制器,一个服务,......进行测试.我怎么做?我没有使用require.js或类似的东西,文件只是脚本文件,基本上有以下内容:
angular.controller('fooController', [ '$scope', function ($scope) {
// ...
}]);
Run Code Online (Sandbox Code Playgroud)
如何在测试中引用和实例化该控制器?服务,指令,......也是如此.
我是否需要创建嘲笑$scope,$http&CO.对我自己,还是有一些帮助?
请注意,我知道有Karma测试运行器(以前称为Testacular),但我不想完全切换我的测试运行器.
dar*_*uby 14
一种方法是Angular $injector在测试中使用:
myModule_test.js
suite('myModule', function(){
setup(function(){
var app = angular.module('myModule', []);
var injector = angular.injector(['myModule', 'ng']);
var service = injector.get('myService');
});
suite('myService', function(){
test('should return correct value', function(){
// perform test with an instance of service here
});
});
});
Run Code Online (Sandbox Code Playgroud)
你html应该看起来像这样:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>myModule tests</title>
<link rel="stylesheet" media="all" href="vendor/mocha.css">
</head>
<body>
<div id="mocha"><p><a href=".">Index</a></p></div>
<div id="messages"></div>
<div id="fixtures"></div>
<script src="vendor/mocha.js"></script>
<script src="vendor/chai.js"></script>
<script src="angular.min.js"></script>
<script src="myModule.js"></script>
<script>mocha.setup('tdd')</script>
<script src="myModule_test.js"></script>
<script>mocha.run();</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14704 次 |
| 最近记录: |