在私有方法上使用 Jasmines spyon

2022-01-11 00:00:00 unit-testing jasmine javascript

是否可以在类私有方法上使用 Jasmine 单元测试框架的 spyon 方法?

is it possible to use Jasmine unit testing framework's spyon method upon a classes private methods?

文档给出了这个例子,但这对于私有函数来说可以灵活吗?

The documentation gives this example but can this be flexivble for a private function?

describe("Person", function() {
    it("calls the sayHello() function", function() {
        var fakePerson = new Person();
        spyOn(fakePerson, "sayHello");
        fakePerson.helloSomeone("world");
        expect(fakePerson.sayHello).toHaveBeenCalled();
    });
});

推荐答案

只需添加一个泛型参数 到 spyon() 函数:

Just add a generic parameter < any> to the spyon() function:

 spyOn<any>(fakePerson, 'sayHello');

完美运行!

相关文章