サービスに次のコードがあります。Jasmine匿名関数を返す関数をテストする方法
function getK(k) {
return function() {
return k;
};
}
私はgetKが私の質問は、私はジャスミン
EDIT
で、内側return function() {
return k;
}
のテストはどうすればよいです
beforeEach(inject(function(FiltersService){
this.service = FiltersService;
spyOn(this.service, 'getK');
}));
it("getK should be called", function(){
var key = "TEST";
var result = this.service.getK(key);
expect(this.service.getK).toHaveBeenCalled();
expect(this.service.getK).toHaveBeenCalledWith("TEST");
}
で呼び出されたことをテストすることができます
詳細を指定するには、getK function
を使用して、以下のようにオブジェクトを埋めます。そのオブジェクトは、私が使用しているライブラリの一部で、key
を使用しています。 key
の実際の実装が私が制御していないライブラリの一部であることを見て、カルマ - ジャスミンの観点からこれをテストする方法についてちょっと混乱していると思います。だから私は、内部getK機能のテストを作成する方法を確認していない、あるいはvalid
以下の機能のために必ずオブジェクトが正しく
libObject.push({
Data: {
Name: 'test'
},
key: getK("TEST"),
valid: function() {
return true;
}
});
正確に何をテストしますか? – estus
私は本当にテストすることができます。それは私がgetKに送ったものを返すということです...正直なところ、コードカバレッジを得るには – user2719805
'expect(result).toEqual(jasmine.any(Function))'です。あなたはこの関数のコンテキストに関する詳細を提供していないので、他のことを言うことはできません。そして私はgetKが呼ばれたというテストがなぜ必要なのか分からない。 'getK(key)'を呼び出したのはあなたでした。もちろん、それはもちろん、 'TEST'と呼ばれるでしょう。 – estus