0
私はジャスミンテストに新たなんだが、ここで私は工場で私の$資源をテストするユニットテスト、 ので、私が最初にこの工場があります。ジャスミン工場
angular.module('starter.services', [])
.factory('API', function($rootScope, $resource) {
var base = "http://192.168.178.40:8000/api";
return {
getGuestListForH: $resource(base + '/guests/:id/:wlist', {
id: '@id',
wlist: '@wlist'
})
}
});
と私テスト:
beforeEach(module('starter.services'));
describe('service: API resource', function() {
var $scope = null;
var API = null;
var $httpBackend = null;
beforeEach(inject(function($rootScope, _API_, _$httpBackend_) {
$scope = $rootScope.$new();
API = _API_;
$httpBackend = _$httpBackend_;
$httpBackend.whenGET('http://192.168.178.40:8000/api/guests').respond([{
id: 1,
name: 'a'
}, {
id: 2,
name: 'b'
}]);
}));
afterEach(function() {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
it('expect all resource in API to br defined', function() {
$httpBackend.expect('http://192.168.178.40:8000/api/guests');
var dd = API.getGuestListForH.query();
expect(dd.length).toEqual(2);
expect(API.getGuestListForH).toHaveBeenCalled();
});
});
と私は結果になった:
- 期待0等しい2
- 期待スパイするのではなく、機能 .Iは、工場内のリソースをテストしたい、ここで何が問題 を得ました何をするのが最善の方法ですか?
お返事ありがとうございます。あなたのソリューションはうまくいきますが、サービスモジュールのリソース(id、wlist)の中のパラメタを誤って削除した場合、このテストは常に成功を返します。 。あなたはどう思いますか? –