我应该如何重新使用常见的角度单位测试功能

时间:2014-07-03 10:54:40

标签: angularjs

我发现在编写角度单位测试时,我经常在每个测试文件中做类似的事情,例如编译和消化指令。我想将这些功能放到一个单独的库中,但我想知道如何最好地执行此操作。

我看了一下angular.mocks并看到它使用模块模式将angular.mocks添加到窗口,然后我通过karma的文件数组加载angular-mocks.js。我没有问题以这种方式创建我的库,但是想知道我的测试中是否存在某种我不知道的require('mylib')语句。

1 个答案:

答案 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(...);
}));