我发现在编写角度单位测试时,我经常在每个测试文件中做类似的事情,例如编译和消化指令。我想将这些功能放到一个单独的库中,但我想知道如何最好地执行此操作。
我看了一下angular.mocks并看到它使用模块模式将angular.mocks添加到窗口,然后我通过karma的文件数组加载angular-mocks.js。我没有问题以这种方式创建我的库,但是想知道我的测试中是否存在某种我不知道的require('mylib')语句。
答案 0 :(得分:0)
您可以使用$controller
服务来实例化辅助函数。 e.g。
helper.js
var Helper = function($httpBackend, customParam) {
this.$httpBackend = $httpBackend;
this.customParam = customParam;
}
Helper.prototype.mockHttpRequest = function() {
this.$httpBackend.when(...);
}
test.js
it('should do something', inject(function($controller) {
var helper = $controller('Helper', {customParam: 123});
helper.mockHttpRequest();
expect(...);
}));