서비스에서 반환하는 약속의 가치를 테스트하려면 어떻게해야합니까?$q documentation에서 promise 값은 resolve (value)를 사용하여 테스트에서 미리 설정됩니다. 다른 접근법은 AngularJS가 약속을 평가하고 $ scope 값을 바인딩한다는 사실을 이용하여 컨트롤러에서 서비스 로직을 테스트합니다.서비스가 약속 한 값을 반환 함
제 생각에는 이러한 접근 방식 중 어느 것도 실제로 테스트해야하는 곳에서 서비스의 논리를 테스트하지 않습니다. 해결 된 약속 (서비스에서 반환)에 올바른 값이 포함되어 있는지 테스트하려면 어떻게합니까? 여기
예 :
이 서비스를 테스트하기 위해myApp.service('service', function($q){
var obj = {};
obj.test = function() {
var deferred = $q.defer();
deferred.resolve(false);
return deferred.promise;
}
return obj;
});
, 나는 (실제로는 작동하지 않는) 이론에서 다음을 수행 할 : VAR $ q를, 서비스;
beforeEach(function() {
module('myModule');
service = $injector.get('service');
});
describe('...', function() {
it('Testing whether promise contains correct value', function() {
var myPromise = service.test();
myPromise.then(function(value) {
expect(value).toBeFalsy();
});
});
});
약속을 되 돌리면서 (원래 질문에서 변경해야 함) 동의하지만, 여전히 작동하지 않습니다. – bengro
테스트의 다른 부분을 특히 테스트를 설정 한 부분에 게시 할 수 있습니까? –
원래 질문에서 테스트를 업데이트했습니다. – bengro