web-dev-qa-db-fra.com

Comment espionner une méthode de classe statique avec Jasmine

J'ai une classe avec une méthode statique que je veux tester dans Jasmine. Je comprends que les méthodes statiques ne sont pas appelables sur les instances de la classe. Donc, outre le fait qu'il ne peut pas trouver la méthode pour spyOn, mon test ne passe pas, mais comment procéder pour tester des méthodes statiques dans une classe avec Jasmine?

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

Test de jasmin

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

Vous devriez pouvoir utiliser spyOn(Foo, 'foobar') en faire un espion.

Les espions ne sont pas non plus destinés à être testés directement - ils sont un outil qui vous permet de tester d'autres codes de manière plus déterministe et isolée.

24
Daniel A. White