开玩笑测试通可变至另一个测试

问题描述 投票:0回答:1

我试图给一个变量从一个测试分配给被另一个测试中访问。例如:

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在“删除用户”。任何想法如何用开玩笑做到这一点?谢谢

javascript jestjs
1个回答
2
投票

每个测试独立运行,并有很好的理由。测试应确认分离的条件,方法,和逻辑。所有--runInBand并运行在连续测试,但他们仍然不一定能够共享数据对象,您似乎在期待的方式。

此外,假设这些方法推迟到某种类型的后端服务,你不会很容易地能够充分测试系统的行为。这听起来像你想的端至端或集成测试框架,而不是像玩笑的单元测试框架。

用玩笑保持一致,你可能会需要模拟任何后端服务被称为createUserdeleteUser。开玩笑mocks可以帮助创造的类型,你要测试的条件更换新的外部函数。

备选地或另外,你可能能够使用存根或userbeforeAll对象beforeEach,建立样本数据,可以让你测试时,它通过一个特定的对象deleteUser的行为(可能绕过与上述模拟任何后端持久性)。

© www.soinside.com 2019 - 2024. All rights reserved.