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

用 jest 测试模块功能

用 jest 测试模块功能

慕运维8079593 2023-08-10 15:21:04
我有一个如下所示的模块:const config = require('config')const isActive = config.get('isActive')const infoMap = new Map()const set = (key, value) => {  infoMap.set(key, value)}const get = (key) => infoMap.get(key)module.exports={set, get} 以及我测试这些东西的测试:let getlet setbeforeEach(() => {  jest.mock('config')  mockIsActive = require('config').get.mockReturnValueOnce(true)    get = require('../cache/mymap').get  set = require('../cache/mymap').set})describe('The map', () => {  describe('when data is added', () => {    set('testKey', "testData")    it('should contains the data', async () => {      const dataFromMap = get('testKey')      assert("testData", dataFromMap)    })  })})当使用以下命令调用时会失败set:set is not a function奇怪的是,它get运行起来没有问题。
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

必须在函数set内部调用该函数it,否则尚未定义:


describe('when data is added', () => {

    it('should contains the data', async () => {

      set('testKey', "testData")

      const dataFromMap = get('testKey')

      assert("testData", dataFromMap)

    })

  })

beforeEach在每个 it 函数之前运行,而不是在描述之前运行。这也是为什么get在您的示例中起作用的原因 - 它位于it函数内部。


查看完整回答
反对 回复 2023-08-10
  • 1 回答
  • 0 关注
  • 50 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信