首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jest环境文件中模拟函数

在jest环境文件中模拟函数
EN

Stack Overflow用户
提问于 2021-07-07 14:10:10
回答 1查看 243关注 0票数 0

我希望在所有测试之间共享一个服务器,为此,我创建了文件服务器-environment.js. do

代码语言:javascript
复制
const NodeEnvironment = require('jest-environment-node')
const supertest = require('supertest')

//A koa server
const { app, init } = require('../src/server')

class ServerEnvironment extends NodeEnvironment {
  constructor(config, context) {
    super(config, context)
    this.testPath = context.testPath
  }

  async setup() {
    await init
    this.server = app.listen()
    this.api = supertest(this.server)
    this.global.api = this.api
  }

  async teardown() {
    this.server.close()
  }
}

module.exports = ServerEnvironment

问题是,我想要模拟服务器路由使用的一些中间件,但我真的找不到这样的方法。如果我试图在文件中的任何地方声明jest.mock,就会得到没有定义jest的错误。如果我在实际的测试文件中模拟这个函数,全局将不会使用它。不知道这样的事能不能和Jest有关系?

EN

回答 1

Stack Overflow用户

发布于 2021-10-22 18:31:01

我有一个同样的问题,并通过添加setupFilesAfterEnv来解决它。

jest.config.js:

代码语言:javascript
复制
module.exports = {
    ...
    setupFilesAfterEnv: [
        './test/setupMocks.js'
    ]
    ...
};

测试/setupMocks.js

代码语言:javascript
复制
jest.mock('path/to/api', () => global.api);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68287660

复制
相关文章

相似问题

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