web-dev-qa-db-ja.com

Jasmineで静的クラスメソッドをスパイする方法

ジャスミンでテストしたい静的メソッドを持つクラスがあります。クラスのインスタンスでは静的メソッドを呼び出せないことを理解しています。したがって、spyOnへのメソッドが見つからないという事実に加えて、私のテストはパスしませんが、Jasmineを使用してクラスの静的メソッドをテストするにはどうすればよいでしょうか?

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)
})
14
Sherman Hui

spyOn(Foo, 'foobar')を使用してスパイにすることができるはずです。

また、スパイは直接テストすることを目的としていません。これらは、他のコードをより確定的にテストして分離するためのツールです。

24
Daniel A. White