摘要:
使用 done Jest 提供了一个名为 done 的方法,用于表示测试运行应该等待异步调用完成。done 函数可以作为参数传递给任何 beforeAll、beforeEach 或 it 函数,并且允许我们的异步测试在继续之前等待 done 函数被调用。让我们使用 done 重写我们之前失败的测试如 阅读全文
摘要:
异步测试 (Asynchronous tests) 正如我们在探索JavaScript和TypeScript时所看到的,我们编写的大部分代码都是异步的。这意味着我们无法准确控制回调函数何时被调用,或者Promise何时解析,因为我们正在等待一个超出我们控制范围的事件发生。这经常在单元测试中引起问题, 阅读全文
摘要:
返回值的监视器 (Spies returning values) 当我们希望模拟函数的返回值时,我们可以轻松地从模拟实现中返回一个值。作为示例,请考虑以下类: 1 class MyMockedClass { 2 functionToBeMocked(): number { 3 return 5; 4 阅读全文
摘要:
Jest 监视器 (Jest spies) Jest还提供了一种能够检查特定类方法是否被调用的能力,使用的是所谓的spy。考虑以下类定义: 1 class MySpiedClass { 2 testFunction() { 3 console.log(`testFunction() called`) 阅读全文
摘要:
Jest模拟 (Jest mocks) 在测试我们的代码时,我们经常遇到这样的情况:我们希望确保某个特定函数被调用,或者它被使用正确的参数进行了调用。当一个特定函数按顺序调用其他函数以执行一些业务逻辑时,这种情况最常见。例如,我们可能会调用一个初始化函数,并且该初始化函数可能会调用多个REST服务来 阅读全文
摘要:
数据驱动测试 (Data-driven tests) 很多时候,我们需要运行相同的测试多次,只是输入值不同。作为这个的一个例子,请考虑以下测试: [1, 2, 3, 4, 5] .forEach((value: number) => { it(`${value} should be less tha 阅读全文
摘要:
测试设置和拆卸 ( Test setup and teardown) 在运行特定的测试之前,我们可能希望先执行一些代码。这可能是为了初始化一个特定的变量,或者确保对象的依赖关系已经设置好。同样地,我们可能希望在特定的测试运行后执行一些代码,甚至在整个测试套件运行完毕后执行。为了说明这一点,请考虑以下 阅读全文