以下异步承诺位于我正在测试的Angular目标中。我看不到正在调用的“ then”中的代码,而这正是我需要测试的“ then”中的代码。
angular.module('Ls', [
])
function Locale($rootScope, $http) {
var API = {
getAvailables: getAvailables
};
API.getAvailables().then(function(data) {
..........do stuff
........it what this code is doing that I want to test!!!
});
function getAvailables() {
return $http.get('/l.json').then(function(response) {
return response.data;
});
}
答案 0 :(得分:0)
您可以对getAvailables
进行存根以始终进行解析,也可以将回调提取到单独的函数中并进行测试。
选项A
sinon.stub(API, 'getAvailables').resolves(data);
选项B
API.getAvailables().then(handleResponse);
^测试handleResponse
函数
答案 1 :(得分:0)
这为我解决了 $ httpBackend.flush() https://docs.angularjs.org/api/ng/service/ $ http#writing-unit-tests-that-use-http