姬長信(Redy)

angularjs-茉莉花单元测试$timeout(expect($timeout…


我想对Angular.js $timeout进行单元测试,以检查是否已使用正确的duration / delay值调用了它.

该断言如下所示:

expect($timeout).toHaveBeenCalledWith(n);

我的Angular代码大致如下:

$timeout(function() {
    // do something
}, attrs.timeout || 30000);

我想确保没有覆盖(attrs.timeout)时用30000调用,使用覆盖时用该覆盖调用.

我已经尝试过这样的装饰器:

// from: https://stackoverflow.com/a/21536245/633056
beforeEach(module(function($provide) {
    $provide.decorator('$timeout', function($delegate) {
        return jasmine.createSpy($delegate);
    });
}));

加上其他几种方法,但我似乎无法使其正常工作.

我正在使用Angular 1.3.20,Jasmine 2.3.4

任何建议表示感谢.