こんにちは、現在、カルマとジャスミンを使用した単体テストをセットアップしています。そして、ng-resource を完全にテストするのに苦労しています。scope.clients.query() を実行すると、リクエストが実行されます。しかし、単体テストでこれを実行しようとすると、これは失敗します。
誰かが同様の問題を抱えていて、誰かがこの問題を解決する方法を知っていますか?
例えば
var mockResponse = [[{
"name": "foo",
},{
"name": "foo",
}
];
describe("adserver module", function() {
//define module
beforeEach(module('someModule'));
describe("some controller", function() {
var scope, controller, $httpBackend;
var CTRL = 'someCtrl';
beforeEach(inject(function(_$httpBackend_, $rootScope, $controller) {
$httpBackend = _$httpBackend_;
scope = $rootScope.$new();
controller = $controller;
}));
afterEach(function() {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
});
beforeEach(function() {
//define requests and responses
$httpBackend.expectGET('/api/clients').respond(mockResponse);
//aplly controller
controller(CTRL, {
$scope: scope
});
// flush all request
$httpBackend.flush();
});
//SPECS
it('should contain clients', function() {
expect(typeof scope.clients).toBe('object');
expect(scope.clients.length).toBe(2);
});
it('scope should re-request', function() {
scope.clients.query(); /// will not work methode undefined
expect(scope.clients.length).toBe(2);
});
});
});