首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jest用于角1.6的单元测试

Jest用于角1.6的单元测试
EN

Stack Overflow用户
提问于 2018-02-28 13:18:04
回答 1查看 907关注 0票数 1

我正在尝试测试我使用漫威API的棱角服务,我跟踪这篇文章,但我不知道我做错了什么。

误差

代码语言:javascript
复制
Failed to instantiate module marvel due to:{1}

My app.js

代码语言:javascript
复制
(() => {
  angular.module('marvel', [
    'ui.router',
    'ngAnimate',
    'ngAria',
    'ngMessages',
    'ngMaterial'
  ])
})()

我的测试规范代码

代码语言:javascript
复制
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')
      })
  })
})

漫威服务

代码语言:javascript
复制
(() => {
  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
      }
    })
})()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 13:25:57

问题就像错误说的一样。应该有marvel模块,但它不存在。

angular.module('marvel')是模块获取器。预计该模块已经用angular.module('marvel', [])定义了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49030545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档