[英]How to mock a method using ts-mockito?
我想通過ts-mockito@2.5.0創建類的模擬對象,但無法正確設置。
這是人為設計的測試用例:
import {expect} from "chai";
import {
mock,
when,
} from "ts-mockito";
class MockMe {
public doStuff(): string {
return "I AM THE ORIGINAL VALUE";
}
}
describe("ts-mockito weirdness", async () => {
it("should create a mock with specific return values", async () => {
const mocked = mock(MockMe);
await when(mocked.doStuff()).thenReturn("I AM MOCKED");
const actualReturnValue = mocked.doStuff();
expect(actualReturnValue).to.eq("I AM MOCKED");
});
});
就像測試用例所暗示的那樣,我希望模擬程序的返回值是“ I AM MOCKED”。
但是,我得到一個TS-的Mockito-specifc對象,而不是,包含類似性質: methodStubCollection
, matchers
, mocker
和name
。
我應該如何設置可以按預期工作的模擬程序?
旁注:這個測試用例只是為了展示我正在經歷的怪異行為。 這不是我的實際測試。 我想在單元測試中使用模擬來提供其他服務。)
由於TypeScript的技術限制,您缺少instance
調用。
import {
instance,
mock,
when,
} from "ts-mockito";
const mockitoMock = mock(MockMe);
const actualInstanceOfMock = instance(mocked).doStuff();
actualInstanceOfMock.doStuff() // will return your mocked value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.