Я показал эту ошибку, я попробовал много решений в сети, как этот пример в http://www.benlesh.com/2013/06/angular-js-unit-testing-services.html, но, похоже, ничего не работает.
***** app.js
var app = angular.module('myApp', ['ui.router','ui.bootstrap','dialogs','ngResource']);
app.config(['$stateProvider', '$urlRouterProvider','$resourceProvider', function($stateProvider, $urlRouterProvider,$resourceProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url:'/',
views: {
......}})
}]);
***** test.js
describe('basicService tests', function (){
beforeEach(module('myApp'));
var basic;
// excuted before each "it" is run.
beforeEach(inject(function(basicService) {
basic = basicService;
}));
it('should make text exciting', function (){
//var result = basic.exciteText('bar');
expect(basic.exciteText('bar')).toBe('bar!');
});
});
***** service.js
angular.module('myApp').factory('basicService', function(){
return {
exciteText: function(msg) {
return msg + '!!!'
}
};
});
*****ошибка
minErr/<@C:/_Stage/myprojet/src/main/webapp/js/angular.js:63:12
loadModules/<@C:/_Stage/myprojet/src/main/webapp/js/angular.js:4138:15
forEach@C:/_Stage/myprojet/src/main/webapp/js/angular.js:323:11
loadModules@C:/_Stage/myprojet/src/main/webapp/js/angular.js:4099:5
createInjector@C:/_Stage/myprojet/src/main/webapp/js/angular.js:4025:11
workFn@C:/_Stage/myprojet/src/main/webapp/js/angular-mocks.js:2425:44
createStartFn/<@C:/_Stage/myprojet/src/main/webapp/js/adapter.js:317:5
TypeError: basic is undefined in C:/_Stage/myprojet/src/main/webapp/cportal/component/administration/caFingerPrint/caFingerprintService_test.js (line 20)
@C:/_Stage/myprojet/src/main/webapp/cportal/component/administration/caFingerPrint/caFingerprintService_test.js:20:9
createStartFn/<@C:/_Stage/myprojet/src/main/webapp/js/adapter.js:317:5
PS: В karma.config.js я добавил эти файлы. Кроме того, я попробовал var app = angular.module('myApp', []); потому что я не включил их в "karma.config.js", и я их так называю,
<script src="/angular-ui-router.js"></script>
так что я его ошибка, но ничего. Спасибо за любую помощь.
Кажется, что необходимые файлы неправильно настроены в файле karma.config.js. Я могу успешно выполнить ваш тест, используя следующие karma.config.js:
module.exports = function (config) {
var configuration = {
autoWatch: false,
frameworks: ['jasmine'],
files: [
'lib/angular.js',
'lib/angular-resource.js',
'lib/angular-ui-router.js',
'lib/angular-mocks.js',
'app.js',
'service.js',
'test/**/*js'
],
...
Конечно, вам нужно убедиться, что все файлы ссылок есть и указанные пути (относительно karma.config) верны (в моих файлах спецификации проекта находятся в папке "test", библиотеки - в "lib", файлы приложений расположены в том же каталоге, что и файл конфигурации кармы)