我正在尝试使用Jasmine规范文件对Angular服务进行单元测试.这需要加载模块.这是一个简单的规范,旨在简单地加载Angular模块:
describe('Submission services', function () {
it('Finds angular', function () {
module('submissionServices');
});
});
Run Code Online (Sandbox Code Playgroud)
当我运行Jasmine时,会导致以下错误
Running Jasmine specs...
FAIL: 1 test, 1 failure, 0.004 secs.
Submission services Finds angular. (/Users/XXX/Projects/globe_town/spec/javascripts/SubmissionsSpec.js:3)
ReferenceError: Can't find variable: module
Test ordering seed: --seed 1826
rake aborted!
Jasmine::Headless::TestFailure
Run Code Online (Sandbox Code Playgroud)
jasmine.yml文件包含
src_files:
- public/javascripts/jquery.js
- spec/javascripts/lib/angular/angular.js
- spec/javascripts/lib/angular/angular-resource.js
- app/assets/javascripts/services/submissions.js
stylesheets:
- stylesheets/**/*.css
helpers:
- helpers/**/*.js
spec_files:
- '**/*[sS]pec.js'
src_dir:
spec_dir: spec/javascripts
Run Code Online (Sandbox Code Playgroud)
该软件的版本是:
我需要做些什么才能让Jasmine找到Angular?
我试图用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);
});
});
Run Code Online (Sandbox Code Playgroud)
我插入expect(true).toBe(true)只是为了让测试执行并失败,即使它没有触及角度控制器.当II尝试使用jasmine-headless-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
Run Code Online (Sandbox Code Playgroud)
是否有任何关于如何纠正此错误并使琐碎的测试执行的提示?