首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jest.mock TypeError:不是Jest中的构造函数

Jest.mock TypeError:不是Jest中的构造函数
EN

Stack Overflow用户
提问于 2019-02-21 21:09:46
回答 1查看 7.6K关注 0票数 5

我正在尝试使用jest编写单元测试用例,并需要模拟以下模式。我得到了TypeError:不是一个构造函数。

Usecase :我的用例如下

MyComponent.js:

代码语言:javascript
复制
 import serviceRegistry from "external/serviceRegistry";


        serviceRegistry.getService("modulename", "servvice").then(
              service => {
                let myServiceInstance = new service();
                myServiceInstance.init(p,d) 
        })

Mycomponent.spec.js

代码语言:javascript
复制
jest.mock('external/serviceRegistry', () => {
      return {
        getService: jest.fn(() => Promise.resolve({
          service: jest.fn().mockImplementation((properties, data, contribs) => {
            return {
              init: jest.fn(),
              util: jest.fn(),
              aspect: jest.fn()

            };
          })
        }))
      };
    }, {virtual: true});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-21 21:29:29

getService返回的Promise将解析为object,并将service属性设置为您的构造函数模拟,但您的代码期望它直接解析为构造函数模拟。

将您的external/serviceRegistry模拟更改为以下内容,它应该会起作用:

代码语言:javascript
复制
jest.mock('external/serviceRegistry', () => {
  return {
    getService: jest.fn(() => Promise.resolve(
      jest.fn().mockImplementation((properties, data, contribs) => {
        return {
          init: jest.fn(),
          util: jest.fn(),
          aspect: jest.fn()
        };
      })
    ))
  };
}, {virtual: true});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54807916

复制
相关文章

相似问题

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