如何用Jasmine窥探静态类方法

She*_*Hui 11 javascript static class spy jasmine

我有一个静态方法的类,我想在Jasmine中测试.我知道静态方法不能在类的实例上调用.所以除了找不到spyOn的方法之外,我的测试没有通过,但是如何用Jasmine在类中测试静态方法呢?

谢谢!

class Foo {
    static foobar (a, b) {
      return a * b
    }
}
Run Code Online (Sandbox Code Playgroud)

茉莉花测试

it ('should test a static method', () => {
    let foo = new Foo()
    spyOn(foo, 'foobar')
    foo.foobar(2,3)
    expect(foo.foobar).toBe(6)
})
Run Code Online (Sandbox Code Playgroud)

Dan*_*ite 26

你应该可以使用spyOn(Foo, 'foobar')它作为间谍.

间谍也不是要直接测试 - 它们是一种工具,因此您可以更加确定地并且孤立地测试其他代码.