0
我正在通过提供商装饰AngularJS $log
。测试AngularJS提供商
装饰工作很好,但我真的很努力地测试它。
这是一个fiddle有我的提供者和我的测试尝试。
任何帮助如何测试这将不胜感激,我很新的测试。
感谢
我正在通过提供商装饰AngularJS $log
。测试AngularJS提供商
装饰工作很好,但我真的很努力地测试它。
这是一个fiddle有我的提供者和我的测试尝试。
任何帮助如何测试这将不胜感激,我很新的测试。
感谢
这里是$ HTTP一个装饰用新abort函数...
function httpAbortDecorator($provide) {
$provide.decorator('$http', ["$delegate", "$q", function ($delegate, $q) {
...
$delegate.abort = function (request) {
var cancelerKey, canceler;
cancelerKey = $delegate.getCancelerKey(request.method, request.url);
canceler = $delegate.cancelerMap[cancelerKey];
if (canceler != null) {
if (request.timeout != null && typeof request.timeout !== "number") {
canceler.resolve();
delete $delegate.cancelerMap[cancelerKey];
}
}
};
return $delegate;
}]);
}
然后一个单元测试...
it('should not abort a request if the request timeout is not set', function() {
spyOn(http, 'abort').and.callThrough();
var ABORT_URL = "/api/";
var HTTP_METHOD = "GET";
http.pendingRequests.push({url: ABORT_URL, method: "GET"});
http.addCancelerKey(HTTP_METHOD, ABORT_URL);
state.go("login");
expect(http.abort.calls.count()).toBe(1);
expect(Object.keys(http.cancelerMap).length).toBe(1);
});
希望这给你一些方向 - 它不是完整的代码。