Javascript 不确定angularjs单元测试中的错误
我正在尝试用AngularJs对一个控制器进行单元测试,并以AngularJs文档为指导<代码>https://docs.angularjs.org/guide/controller 在指南中(在上面的链接中),控制器中有此代码Javascript 不确定angularjs单元测试中的错误,javascript,angularjs,unit-testing,Javascript,Angularjs,Unit Testing,我正在尝试用AngularJs对一个控制器进行单元测试,并以AngularJs文档为指导https://docs.angularjs.org/guide/controller 在指南中(在上面的链接中),控制器中有此代码 $scope.spice = "habanero"; 这个代码在测试中 it('should set the default value of spice', function() { expect($scope.spice).toBe('habanero');
$scope.spice = "habanero";
这个代码在测试中
it('should set the default value of spice', function() {
expect($scope.spice).toBe('habanero');
});
在我正在测试的控制器中,有一些代码如下:
$scope.sessionViewModel = session;
在我的测试中,我写了以下内容:
it('should set the default value of sessionViewModel', function(){
expect($scope.sessionViewModel).toBe(session);
});
但是我得到一个错误,说TypeError无法读取未定义的属性“sessionViewModel”
我不确定我做错了什么
整个测试文件:
describe('forgotPasswordCtrl function', function() {
describe('forgotPasswordCtrl', function(){
var $scope;
var returnMsg = 'Forgot password response message';
var returnMsgTwo = '/web/tfgm_customer';
beforeEach(module('forgotPasswordApp'));
beforeEach(inject(function($rootScope, $controller){
$scope = $rootScope.$new();
$controller = ('ForgotPasswordCtrl', {$scope: $scope});
}));
it('returns a -forgot password response- message', function(){
expect($scope.globalError).toEqual(returnMsg);
});
it('assigns a url depending on a customer match happens', function(){
expect(window.location.assign).toEqual(returnMsgTwo);
});
it('should set the default value of sessionViewModel', function(){
expect($scope.sessionViewModel).toBe(session);
});
});
});
试着改变
$controller = ('ForgotPasswordCtrl', {$scope: $scope});
到
该错误表示未定义$scope。你能发布你的整个测试文件吗?@SoroushHakami是的,完成了/是的,我做了这个,它没有改变任何东西。。。其他代码是否需要更改?在你看来,这是否可行?嗯,不确定。例如,如果您可以使用Jsfiddle.net创建测试的实时演示,我可以再看一看
controller = $controller('ForgotPasswordCtrl', {$scope: $scope});