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您的代码片段按预期工作。你应该在发帖前检查一下。