访问函数内部的局部变量,并使用angularjs在jasmine测试中检查ng click
你好,我有以下代码访问函数内部的局部变量,并使用angularjs在jasmine测试中检查ng click,angularjs,jasmine,karma-jasmine,Angularjs,Jasmine,Karma Jasmine,你好,我有以下代码 myApp.controller('myctrl',function($scope,myservice){ //where testClickEvent is ng-click from partials $scope.testClickEvent=function(args){ var setArg1=args[0]; var params = {"myarg1":setArg1} //rest call
myApp.controller('myctrl',function($scope,myservice){
//where testClickEvent is ng-click from partials
$scope.testClickEvent=function(args){
var setArg1=args[0];
var params = {"myarg1":setArg1}
//rest call
myservice.testClickEvent(params).success(function(data){
if(data.res==true)
{
$scope.somevariable="success";
}
}).error(function(error){
$scope.somevariable="failure";
});
}
});
我想用茉莉花来测试它
ng click
事件发生在部分$scope.somevariable
和setArg1
的值是否正确
这里我用过
spyOn(scope,testClickEvent);
scope.testClickEvent(args);
expect(scope.testClickEvent).toHaveBeenCalledWith(args);
spyOn(myservice,testClickEvent);
myservice.testClickEvent(params);
expect(myservice.testClickEvent).toHaveBeenCalledWith(params);
提前谢谢!谢谢你的帮助 您需要使用
$httpBackend
$httpBackend
角度页面中的示例有以下两行:
$httpBackend.when('GET','/auth.py').response({userId:'userX'},{'A-Token':'xxx'})代码>$httpBackend.expectPOST('/add msg.py','message content')。响应(201',)代码>
第一个模拟响应,并使用指定的任何对象进行响应
第二个期望使用指定的对象调用服务器
希望这有帮助。谢谢!但我已经在serviceSpec中为服务单独做了这件事。我承认,如果不执行$httpBackend,我将无法获得结果。但是否有任何工作可以解决,仅测试控制器中的异步调用和结果值,以及测试ng click事件的想法。