は私が見えるコントローラ機能を持っているように:
$scope.clearMarkers = function(){
for(var i = 0; i < $scope.markers.length; i++){
$scope.markers[i].setMap(null);
}
$scope.markers = [];
};
のような上記のルックスのための私のユニットテスト:setMap()
メソッドが呼び出されている必要があることを主張する時には、上記のテストが出てエラーになります
describe('clearMarkers Test', function(){
it('should call the setMap() method on each array object inside of scope.markers and then set scope.markers to an' +
'empty array', function(){
scope.markers = [{
setMap: jasmine.createSpy('scope.markers[0]#setMap')
}, {
setMap: jasmine.createSpy('scope.markers[1]#setMap')
}, {
setMap: jasmine.createSpy('scope.markers[2]#setMap')
}];
scope.clearMarkers();
expect(scope.markers[0].setMap).toHaveBeenCalledWith(null);
expect(scope.markers[1].setMap).toHaveBeenCalledWith(null);
expect(scope.markers[2].setMap).toHaveBeenCalledWith(null);
expect(scope.markers).toEqual([]);
});
});
$scope.markers = []
を$scope.clearMarkers()
に設定すると、作成したスパイも削除されるためです。
$scope.markers = []
を$scope.clearMarkers()
にコメントアウトすると、私のsetMap()
アサーションは期待通りに機能します。
この状況で私のスパイをどのように保存しますか?
を解決し、あなたの決定を説明してください。 – estus
@LloydBanks質問は無視され、フィードバックはありませんでした。ソリューションはあなたにとって有益でしたか?そうした場合は、回答を受け入れることを検討してください。 – estus