プロジェクトの JavaScript にテストを追加するために、大きなプロジェクトに Jasmine を追加しています。通常、私はRubyを使用していますが、ここでは私の要素から少し外れています。
関数を持つクラスがあり、テスト中に特定の値を返すようにスパイを作成したいと考えています。コードの要約は次のとおりです。
class @MyKlass
current_location = ->
window.location.host
verify_domain: () ->
domain_filter = current_location()
domain_list = /example\.com/i
@valid_domain = domain_filter.match(domain_list)?
では、どうすればこのようなことをできるのでしょうか?
it("verifies domains", function() {
spyOn(MyKlass, 'current_location').and.returnValue("example");
var myKlass = new MyKlass();
expect(myKlass.verify_domain()).toEqual(true);
});