【发布时间】:2016-04-22 22:12:05
【问题描述】:
我对 Jasmine 测试和 Angular 框架还很陌生。我目前遇到一种特殊情况,无法从 Jasmine 测试中引用我的服务功能。
我的 Angular 服务初始化的一部分:
var service = {
checkIfCurrentIsObject: checkIfCurrentIsObject,
removeFromCurrentObject: removeFromCurrentObject;
}
function checkIfCurrentIsObject() {
return getCurrent().isObject();
}
function removeFromCurrentIsObject() {
checkIfCurrentIsObject();
return specialFunction();
}
现在在我的业力测试中:
describe('when current object is property', function() {
it('verify the requote function is called', function() {
spyOn(Service, 'checkIfCurrentIsObject').and.returnValue(true);
spyOn(Service, 'removeFromCurrentIsObject').and.callThrough();
spyOn(Service, 'specialFunction');
expect(Service, 'specialFunction').toHaveBeenCalled();
});
现在我面临的问题是,除非我在 removeFromCurrentIsObject 函数中将其指定为 this.checkIfCurrentIsObject,否则我的 spyOn 不会使用我的 checkIfCurrentIsObject 函数。这有什么特别的原因吗?
【问题讨论】:
标签: javascript angularjs unit-testing jasmine karma-jasmine