为了账号安全,请及时绑定邮箱和手机立即绑定

使用__mocks__手动模拟无法正常工作

使用__mocks__手动模拟无法正常工作

ITMISS 2021-04-05 14:18:30
我正在尝试向正在开发的节点应用程序添加一些测试。我仔细阅读了有关手动模拟的jest文档,并尝试按照说明创建模拟文件夹。请在下面找到文件夹结构。app - firebase  - fb.js  - __mocks__    - fb.js    - firebase-admin.js - resolvers    - mutation.js__tests__ - user.spec.js如您所见,我尝试模拟两个模块,即fb.js(用户模块)和firebase-admin.js(node_modules模块)。firebase-admin.js模拟工作没有任何问题。但是用户模块模拟甚至还没有被玩笑所吸引。实际的fb.js模块一直都在被调用。我曾尝试为项目中的各种用户模块创建模拟目录,但是没有一个被使用。我还缺少任何额外的配置吗?目前,我正在通过仅模拟firebase-admin节点模块来解决此问题。但是我想模拟用户模块而不是firebase-admin模块,以便也模拟我的firebase配置。请让我知道是否需要更多信息。__mocks __ / fb.jsmodule.exports = {   auth: jest.fn(() => "testing")};__mocks __ / fb-admin.jsmodule.exports = {};__tests __ / user.spec.jsconst request = require('supertest');const server = require('../app').createHttpServer({});const app = request(server);describe('login resolvers', () => {  test('should sign up user', async () => {    const response = await app.post('/')      .send({        query: `mutation {          signUp(idToken: "esd45sdfd...") {            user {              id              locked              revoked            }          }        }        `,      })      .set('Accept', 'application/json')      .expect(200);    console.log(response.text);  });});应用程序/解析器/mutation.jsconst admin = require('../firebase/fb');/* other app code here */
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

从手动嘲弄的文档中:

当我们在测试中需要该模块时,则需要显式调用jest.mock('./moduleName')

如果您要lodash模拟的模块是Node模块(例如:),则模拟应放置在与之__mocks__ 相邻的目录中node_modules(除非您将根配置为指向项目根以外的文件夹),并且将自动对其进行模拟。无需显式调用jest.mock('module_name')


查看完整回答
反对 回复 2021-04-22
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号