NodeJS 利用本机节点测试库模拟不同的调用

92dk7w1h  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(112)

我正在迁移项目以使用本机节点测试运行器和模拟库。以前我使用sinon

import { stub } from "sinon"

const myStub = stub()
  .onFirstCall().returns(1)
  .onFirstCall().returns(2)
  .onFirstCall().returns(3)

functionWhichExecutesMyStubThreeTimes()

字符串
我如何才能实现与节点相同?我尝试了以下方法:

import { mock } from "node:test"

const myMock = mock.fn().mock
myMock.mockImplementationOnce(() => 1)
myMock.mockImplementationOnce(() => 2)
myMock.mockImplementationOnce(() => 3)

functionWhichExecutesMyMockThreeTimes()


mockImplementationOnce的文档展示了一个使用mock实现的基本示例,调用它,然后根据需要再次mock它以再次运行。
我不能这样做,因为我的用例中的实现在一个“黑盒”函数functionWhichExecutesMyMockThreeTimes中进行了三次调用。因此,我需要模拟不同的示例,并只运行一次mocks触发函数。

ar7v8xwq

ar7v8xwq1#

我没有仔细阅读字体签名;

mockImplementationOnce(implementation: Function, onCall?: number): void;

个字符

相关问题