如何使用 Jasmine 监视静态 class 方法

How to spyOn a static class method with Jasmine

我有一个 class 带有我想在 Jasmine 中测试的静态方法。我知道静态方法不能在 class 的实例上调用。因此,除了它找不到 spyOn 的方法这一事实之外,我的测试没有通过,但是如何在 class 和 Jasmine[=19= 中测试静态方法呢? ]?

class Foo {
    static foobar (a, b) {
      return a * b
    }
}

茉莉花测试

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

您应该可以使用 spyOn(Foo, 'foobar') 使其成为间谍。

此外,间谍也不打算直接进行测试 - 它们是一种工具,可让您更确定地和孤立地测试其他代码。