Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在每次迭代之前重置变量?_Javascript_Jestjs - Fatal编程技术网

Javascript 如何在每次迭代之前重置变量?

Javascript 如何在每次迭代之前重置变量?,javascript,jestjs,Javascript,Jestjs,我想为助手设置测试 逻辑很简单:在每次测试之前,我创建一个新项,并对其应用我的函数 以下是最基本的功能: const myTest = (item) => { return item.valid ? 'ok' : 'ko' } const createItem = () => { return { name: 'myItem', valid: true, } } 这是测试文件 describe('products/checkStatus', () =

我想为助手设置测试

逻辑很简单:在每次测试之前,我创建一个新项,并对其应用我的函数

以下是最基本的功能:

const myTest = (item) => {
   return item.valid ? 'ok' : 'ko'
}

const createItem = () => {
  return {
    name: 'myItem',
    valid: true,
  }
}
这是测试文件

describe('products/checkStatus', () => {
  let item
  beforeEach(() => {
    item = createItem()
  })

  test('valid item', () => {
    expect(
      myTest(
        item,
      ),
    ).toBe('ok')
  })

  test('invalid item', () => {
    item.valid = false
    expect(
      myTest(
        item
      ),
    ).toBe('ko')
  })

  test('valid item again', () => {
    expect(
      myTest(
        item
      ),
    ).toBe('ok')
  })
})
因此,第一个和第二个测试将成功通过,但第三个测试将失败,因为它认为
item.valid
false


怎么会这样?是否应该在每次测试之前执行
beforeach
,从而获得一个新的、有效的项目?

我试图编辑它,但被拒绝。
product.valid=false
有意义吗?我想应该是
item.valid=false
我刚刚审阅并接受了您的更改,感谢能够复制我确信您的实际代码是不同的。如果您完全按照此处发布的内容运行,您将得到一个
ReferenceError
,因为
myTest
不是
myTest
,事实上,我编辑了它,以便myTest就是myTest您的代码片段按预期工作。你应该在发帖前检查一下。