我正在尝试将一个测试中的变量分配给另一个测试中访问的变量。例如:
let user;
test('create new user', async () => {
const response = await createUser()
user = response
})
test('delete user', async () => {
const response = await deleteUser(user.id)
})
我知道 jest 有一个 --runInBand
选项,但是在“删除用户”中这仍然有用户作为 undefined
。任何想法如何用 Jest 来完成这个?谢谢
最佳答案
每个测试都是独立运行的,并且有充分的理由。测试应该确认孤立的条件、方法和逻辑。 --runInBand
所做的只是连续运行测试,但它们仍然不一定能够按照您似乎期望的方式共享数据对象。
此外,假设这些方法遵循某种后端服务,您将无法轻松地全面测试该系统的行为。听起来您想要一个端到端或集成测试框架,而不是像 Jest 这样的单元测试框架。
与 Jest 保持一致,您可能需要模拟在 createUser
和 deleteUser
中调用的任何后端服务。开 Jest mocks可以帮助用创建您要测试的条件类型的新函数替换外部函数。
或者或另外,您可以使用 beforeAll stub 您的 user
对象或 beforeEach ,创建示例数据,允许您测试 deleteUser
在传递特定对象时的行为(可能绕过上述模拟的任何后端持久性)。
关于javascript - 开 Jest 测试将变量传递给另一个测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54489350/