Использование Jest для юнит-теста в угловой версии 1.6
Я пытаюсь протестировать свой угловой сервис, который использует Marvel API, и я следил за этой статьей, но я не могу понять, что я делаю неправильно.
ошибка
Failed to instantiate module marvel due to:{1}
Мой app.js
(() => {
angular.module('marvel', [
'ui.router',
'ngAnimate',
'ngAria',
'ngMessages',
'ngMaterial'
])
})()
Код моей тестовой спецификации
require('../../node_modules/angular/angular.min.js')
require('../../node_modules/angular-mocks/angular-mocks.js');
require('../../src/app/app.js')
require('../../src/app/services/marvel.service.js')
describe('\nFail Cases', () => {
beforeEach(angular.mock.module('marvel'))
let _marvelservice
beforeEach(inject((MarvelService) => {
_marvelservice = MarvelService
}));
test('should return false when user do not put the id for details correctly', (done) => {
_marvelservice.getDetail()
.catch((err) => {
expect(err.xhrStatus).toBe('error')
})
})
})
Марвел Сервис
(() => {
angular.module('marvel')
.factory('MarvelService', ($http, $q, Config) => {
/**
* Get 10 characters from Marvel API.
* @return {Object} Doc with all character recovered.
*/
function getCharacters () {
return request('', 'GET', { ts: 1, limit: 10, apikey:
`${Config.MARVEL.PUBLIC_KEY}`, hash: `${Config.MARVEL.MD5}` })
}
/**
* Get details from a characters by consulting the Marvel API.
* @return {Object} Doc with detail character recovered.
*/
function getDetail (id) {
const urlAddress = `/${id}`
return request(urlAddress, 'GET', { ts: 1, apikey:
`${Config.MARVEL.PUBLIC_KEY}`, hash: `${Config.MARVEL.MD5}` })
}
/**
* Responsible for request.
* @return {Object} Doc with the returned promise.
*/
function request (path, method, querystring) {
const options = {
method,
url: `${Config.MARVEL.URL}${path}`,
params: querystring
}
return $http(options)
.then(success => { return success.data }, (err) => {
return err
})
}
return {
getCharacters,
getDetail
}
})
})()
1 ответ
Решение
Проблема именно в том, что говорит ошибка. Там должен быть marvel
модуль, и его там нет.
angular.module('marvel')
является модулем получения. Ожидается, что модуль уже был определен с angular.module('marvel', [])
,