Предположим, задано следующее пространство имен:
export namespace CodeUnderTest {
export function A(): void {
B();
}
export function B(): void {
console.log("B was called.");
}
}
Как написать тест, который вызывает A()
с поддельной реализацией B()
?
Вот как я пыталсячтобы сделать это с Sinon:
import * as sinon from 'sinon';
import { CodeUnderTest } from './code-under-test';
describe('CodeUnderTest', () => {
it('calls fake', () => {
sinon.replace(CodeUnderTest, 'B', () => {
console.log("Fake was called.");
});
CodeUnderTest.A();
});
})
Когда я запускаю его с mocha -r ts-node/register code-under-test.spec.ts
, тестовые отпечатки B was called.
Я ожидаю, что он напечатает Fake was called.
Я открыт длялюбое решение, не только реализованное с помощью Sinon.