0
주입 된 PouchDB 래퍼가있는 단위 테스트를 시도하는 공장이 있습니다. 내가 겪고있는 문제는 약속을 반환하는 모의 PouchDB 서비스를 가지고 있고 약속이 해결되는 동안 (나는 successCb를 console.log로 로그 아웃 할 수 있고 올바르게 보인다), 카르마는 successCb 함수 내에서 정확한 콘솔을 기대한다. 로그 출력이 실행되고 있지 않습니다.PouchDB 서비스 약속으로 AngularJS 단위 테스트
console.log 출력이 잘 작동하지만 expect 문이 실행되지 않는 이유는 확실하지 않지만이 문제에 대한 도움은 매우 감사하겠습니다. 다음
코드 관련 조각입니다[단위 테스트 설정]
var mockCalendarsResource, mockPouchDB;
var mockPouchDB = function(name) {
this.name = name;
this.post = function(newCalendar, successCb, errorCb) {
var promise = new Promise(function(successCb, errorCb) {
newCalendar._id = 2;
successCb(newCalendar);
});
return promise;
};
}
beforeEach(function() {
module(function($provide) {
$provide.value('Pouch', mockPouchDB);
});
angular.mock.inject(function($injector) {
mockCalendarsResource = $injector.get('Calendar');
});
});
[카르마 단위 테스트 코드]
describe('The calendar resource function create', function() {
it('should create a new calendar', inject(function(Calendar) {
var result = mockCalendarsResource.create({
name: "Testing"
},
function(response) {
//console.log here works correctly //
//These are the expect statements not functioning //
expect(response._id).toBe(2);
expect(response.name).toBe('Testing');
// Could put any expectation here and it will pass or not be checked //
}, function(err) {
});
}));
});