我正在尝试在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.sessionViewModel = session;在我的测试中,我写道:
it('should set the default value of sessionViewModel', function(){
expect($scope.sessionViewModel).toBe(session);
});然而,我收到一个错误,显示为TypeError cannot read property 'sessionViewModel' of undefined
我不太确定我做错了什么
整个测试文件:
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);
});
});
});发布于 2015-02-02 19:29:02
试着改变
$controller = ('ForgotPasswordCtrl', {$scope: $scope});至
controller = $controller('ForgotPasswordCtrl', {$scope: $scope});https://stackoverflow.com/questions/28275917
复制相似问题