#javascript #angularjs #jasmine #karma-jasmine
#javascript #angularjs #jasmine #karma-jasmine
Вопрос:
Хорошо … я потратил почти 3 часа, пытаясь разобраться в этом. Я продолжаю получать
Ошибка ссылки: не удается найти переменную: module
при попытке запустить мой тест karma. Я прочитал другие связанные вопросы и правильно упорядочил файлы, но я все еще получаю эту ошибку. Хотя я думаю, что нужная мне модульная функция исходит от angular.mock.js файл, но оказывается, что «inject» также был определен в этом файле, и на него ссылаются, как и должно быть.
вот несколько важных фрагментов, которые лучше покажут мою ситуацию
karma.conf.js
// list of files / patterns to load in the browser
files: [
'public/vendor/angular-1.2.0-rc2.js',
'public/vendor/angular-test.js',
'public/vendor/jasmine-helpers.js',
'public/vendor/angular.mocks.js',
'public/lib/**/*.js',
'public/lib/*.js',
'tests/*Spec.js'
],
файл спецификации
describe("In the Weather Service Module", function(){
var YWS, scope, mockWeatherService;
beforeEach(angular.mock.module('NPWeatherWidget'));
beforeEach(inject(function($rootScope,_YahooWeatherService_){
YWS = _YahooWeatherService_;
scope = $rootScope;
mockWeatherService = jasmine.createSpyObj('YahooWeatherService',['getwoeid','getData']);
module(function($provide){
$provide.value("YahooWeatherService",mockWeatherService);
})
}));
//utility tests
it("Object should be converted to query string", function(){
console.log({name:"larry",age:20}.paramify());
expect({name:"larry",age:20}.paramify()).toBe("name=larryamp;age=20");
})
it("should be converted to a query string", function(){
expect(YWS).toBeDefined();
});
it("GetWoeID should return a bunch of objects with woeid included",function(done){
expect({}).toBeDefined();
});
});
Любая форма указателя в правильном направлении будет очень оценена.
Комментарии:
1. Вместо того, чтобы
angular.mock.module('NPWeatherWidget')
просто попробоватьmodule('NPWeatherWidget')
свойbeforeEach
метод.2. Спасибо @adamK, оказывается, реальная проблема заключалась в том, что я использовал несовместимые версии между моими angular-mock.js и мой фактический файл angular. Когда я нашел правильный angular-mock.js файл для angular 1.2.0-rc2 от code.angularjs.org проблема исчезла