开玩笑地测试模块功能

s_bei

我有一个看起来像这样的模块:

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 get
let set

beforeEach(() => {
  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没有问题。

大猩猩代码

您必须在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函数内部

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章