2017-01-31 6 views
1

У меня есть класс со статическим методом, который я хочу протестировать в Jasmine. Я понимаю, что статические методы не подлежат вызову в экземплярах класса. Так что, кроме того, что он не может найти метод spyOn, мой тест не проходит, но как можно было бы протестировать статические методы в классе с 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) 
}) 

ответ

4

Вы должны быть в состоянии использовать spyOn(Foo, 'foobar') сделать его шпионом.

Также шпионы не предназначены для непосредственного тестирования - они являются инструментом, позволяющим более детерминистически и изолировать другой код.

+0

Спасибо! Я должен был подумать об этом. Кроме того, спасибо за разъяснение о том, как использовать шпиона :) –