我试图给一个变量从一个测试分配给被另一个测试中访问。例如:
let user;
test('create new user', async () => {
const response = await createUser()
user = response
})
test('delete user', async () => {
const response = await deleteUser(user.id)
})
据我所知,笑话有--runInBand
选项,但是这仍然有用户为undefined
在“删除用户”。任何想法如何用开玩笑做到这一点?谢谢
每个测试独立运行,并有很好的理由。测试应确认分离的条件,方法,和逻辑。所有--runInBand
并运行在连续测试,但他们仍然不一定能够共享数据对象,您似乎在期待的方式。
此外,假设这些方法推迟到某种类型的后端服务,你不会很容易地能够充分测试系统的行为。这听起来像你想的端至端或集成测试框架,而不是像玩笑的单元测试框架。
用玩笑保持一致,你可能会需要模拟任何后端服务被称为createUser
和deleteUser
。开玩笑mocks可以帮助创造的类型,你要测试的条件更换新的外部函数。
备选地或另外,你可能能够使用存根或user
您beforeAll对象beforeEach,建立样本数据,可以让你测试时,它通过一个特定的对象deleteUser
的行为(可能绕过与上述模拟任何后端持久性)。