0
x
은 외부 라이브러리이고 Thing
은 x
에서 생성 할 수있는 개체라고 가정합니다.생성자 "x.Thing()"에 대한 조롱/도용
app.service('thingService', function() {
var thing;
this.createThing = function(thingParam){
thing = new x.Thing(thingParam);
}
});
내 최초의 시도가이 포함 :이 모든과 같이, 각도 서비스에 싸여
xSpy = jasmine.createSpyObj('x', ['Thing']);
spyOn(window, 'x').andReturn('xSpy');
을하지만 여전히 불평 Thing
가 구축되어야한다 그 라인에 x() method does not exist
그
를하지만이 (서비스의'createThing' 방법) 테스트되고있는 코드에서 x''의 사용을 해결하지 않는 것 :
그냥 속성을 대체 할 수 있습니다 예를 들어 가정. 테스트에 코드를 추가하면 테스트를 실행할 때'ReferenceError : 변수를 찾을 수 없습니다 : x'가됩니다. –
'thing'만으로 간첩하고 싶다고 생각했습니다. 전체'x'를 바꾸려면 한 수준 위로 올라가서'x'를 기억하고'window.x'를 대체하십시오 ('x'는 실제로 전역입니다). 'x'가 전역 변수가 아니라면, 예제를 명확히하십시오. 언급 한 오류가이를 지적합니다. –