在 Jasmine 测试中无法访问 Angular 服务函数
Angular service functions can't be accessed in Jasmine Tests
我对Jasmine Testing和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();
});
现在我面临的问题是,我的 spyOn 不会接收我的 checkIfCurrentIsObject 函数,除非我在 removeFromCurrentIsObject
函数中将其指定为this.checkIfCurrentIsObject
。这有什么特别的原因吗?
是的,应该是
function removeFromCurrentIsObject() {
this.checkIfCurrentIsObject();
return this.specialFunction();
}
监视他们。
这是正在监视Service.checkIfCurrentIsObject
方法。在 JavaScript 中,无法跟踪checkIfCurrentIsObject()
本地函数调用。
相关文章:
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- angularjs:访问angular控制器中的jquery变量
- 可以't访问Angular.js服务中的功能
- 无法访问Angular Directive模板函数中的属性实际值
- 如何从其他方法访问Angular.js$scope
- 控制器无法访问Angular Service变量
- 在 Jasmine 测试中无法访问 Angular 服务函数
- 控制器内部无法访问Angular js输入模型
- 从自己的事件中访问angular$scope
- 无法使用typescript访问angular中另一个控制器中声明的$rootscope属性
- 如何访问Angular JS模板指令中设置的值,如“ng class?”
- 从函数内部、类内部、模块内部访问 Angular 服务
- 为什么可以't我访问Angular创建的新DOM元素
- 如何在 ng 重复中访问 Angular 表单上的$valid
- 使用 jQuery 访问 Angular 指令中的元素
- 如何通过 Javascript 注入访问 Angular 属性
- FlowJS示例,用于循环访问Angular控制器中的文件
- 如何在视图表达式中访问 Angular 服务
- JavaScript 访问 Angular 范围返回“未定义” - 异步问题
- 访问 Angular .js 中的另一个控制器