我試圖用Jasmine單元測試規範文件測試AngularJS控制器。我的方法是使用$ httpBacked,在下面的測試:
describe('SubmissionsController', function() {
var minimal_mock_response = [ { id: 1 } ];
var scope, routeParams, $httpBackend;
beforeEach(module('submissionServices'));
beforeEach(inject(function($_httpBackend_, $rootScope) {
scope = $rootScope.$new();
$httpBackend = $_httpBackend_;
$httpBackend.expectGET('/submissions').respond(minimal_mock_response);
routeParams = {};
}));
it('passes a trivial test', function() {
expect(true).toBe(true);
});
});
我插入預期(真).toBe(真)只是爲了讓測試執行和失敗,即使不接觸角控制器。當我我嘗試與茉莉無頭WebKit的運行測試,我收到以下錯誤:
jasmine-headless-webkit spec/javascripts/SubmissionsControllerSpec.js
Running Jasmine specs...
F
FAIL: 1 test, 1 failure, 0.011 secs.
Submissions controllers SubmissionsController passes a trivial test. (XXX/spec/javascripts/SubmissionsControllerSpec.js:18)
Error: Unknown provider: $_httpBackend_Provider <- $_httpBackend_
Test ordering seed: --seed 9254
是否有我如何能糾正這一錯誤,使平凡的測試執行任何提示?
修復了這個問題,謝謝! – oxirane
這裏唯一的問題是一個錯字。它應該是\ _ $ httpBackend \ _,而不是$ _httpBackend_。下面的答案比這個更好。 – user553086
@RichardMorgan你說得對。我已經更新了我的答案。 +1 to ghiden – dnc253