如何使用ts-mockito模拟方法?

k0pernikus

我想通过[email protected]创建类的模拟对象,但无法正确设置。

这是人为设计的测试用例:

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对象,而不是,包含类似的属性:methodStubCollectionmatchersmocker,和name

ts-mockito的意外响应的屏幕截图

我应该如何设置可按预期工作的模拟程序?


旁注:这个测试用例只是为了展示我正在经历的怪异行为。这不是我的实际测试。我想在单元测试中为其他服务使用模拟。)

k0pernikus

instance由于TypeScript的技术限制,您未接听电话。

import {
    instance,
    mock,
    when,
} from "ts-mockito";

const mockitoMock = mock(MockMe);
const actualInstanceOfMock = instance(mocked).doStuff();
actualInstanceOfMock.doStuff() // will return your mocked value

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章