14
나는 단위 테스트를하려고하는 간단한 서비스를 가지고 있습니다. 아무리 노력해도 searchService는 알 수없는 공급자이거나 서비스가 null입니다. 이상하게도 내 테스트가 실패하지 않습니다 !!).재스민을 사용하여 간단한 AngularJS 서비스 테스트
누구나 내가 잘못하고있는 것에 대한 통찰력이 있습니까 ??
angular.module('app').service('searchService', function($q, _) { // _ is lodash
var cache = [
{
id: "current",
name: "Current",
description: "Search current data"
},
{
id: "historical",
name: "Historical",
description: "Search historical data"
}
];
this.getSearchOptions = function() {
var deferred = $q.defer();
deferred.resolve(angular.copy(cache));
return(deferred.promise);
};
this.getSearchOptionsByID = function(id) {
var deferred = $q.defer();
var searchOption = _.findWithProperty(cache, "id", id);
if (searchOption) {
deferred.resolve(angular.copy(searchOption));
} else {
deferred.reject();
}
return(deferred.promise);
};
}
);
나는 searchService에 부하가 그래서 캐시 된 값을 확인할 수있는 단위 테스트를 만들기 위해 노력하고 있어요 :
describe("Unit: Testing Services", function() {
describe("Search Service:", function() {
var service = null;
beforeEach(function() {
angular.module('app').service('_');
});
// I've also tried the commented out code below
//beforeEach(inject(function(searchService) {
//this.service = searchService;
//}));
//it('should contain an searchService', invoke(function(service) {
it('should contain an searchService', function(searchService) {
expect(searchService).not.to.equal(null);
});
it('should contain two search options', function(searchService) {
expect(searchService.getSearchOptions()).to.equal(2);
});
});
});
이 있어요 나는 올바른 방향으로 가고있다. 감사! angular.module ('app')을 삭제하고 모듈 ('app') 만 수행했습니다. 그리고 나서 주사를 바꿨습니다. (늦었습니다. 내 손가락이 그들 자신의 마음을 가졌음을 짐작할 수 있습니다.) – nathasm
듣기 좋은데. 참고로 실제로 module ('app')은 실제 모듈의 모의 객체를 생성 할 수있게 해주는 angular.mock.module ('app')의 바로 가기입니다. – Flolagale