【发布时间】:2019-09-09 21:46:57
【问题描述】:
我在 Angular 1.5 版本中运行测试用例,但即使我在 postToRegisterController 控制器中有正确的逻辑并且dealerNumber 在应用程序中工作正常,我也遇到了错误。
postToRegisterController
scope.contract.dealNumber
× set valid deal number
TypeError: Cannot set property 'dealNumber' of undefined
at <Jasmine>
at UserContext.<anonymous> (src/assets/js/controllers/portal-integrated-apps/quikRegister/postToRegisterController.spec.js:46:43)
下面是我的控制器中的一段代码。 (() => {
describe('postToRegisterController', () => {
let $ctrl;
let $controller;
let $state;
let quikRegisterService;
let scope;
let $uibModalInstance;
let $uibModal;
let $rootScope;
let services;
beforeEach(module('app'));
beforeEach(module('app.quikregister'));
beforeEach(module('ui.bootstrap'));
beforeEach(inject(function(_$state_, _quikRegisterService_, _$controller_, _$rootScope_, _services_) {
$controller = _$controller_;
$state = _$state_;
quikRegisterService = _quikRegisterService_;
scope = _$rootScope_.$new();
$rootScope = _$rootScope_;
services = _services_;
$uibModalInstance = jasmine.createSpyObj('$uibModalInstance', ['close', 'dismiss']);
$uibModal = jasmine.createSpyObj('$uibModal', ['open']);
// $uibModalInstance = $uibModalInstance;
// $uibModal = $uibModal;
initController();
}));
beforeEach(() => {
spyOn(quikRegisterService, 'store');
spyOn($state, 'go');
$state.current.data = {
breadcrumbs: [
'Search'
]
};
initController();
});
describe('scope.contract.dealNumber', function() {
it('set valid deal number ', function() {
scope.contract.dealNumber = 1234;
scope.validateDealNumber();
expect(scope.isValidDealNumber).toBe(true);
});
});
function initController() {
$ctrl = $controller('postToRegisterController', {
quikRegisterService: quikRegisterService,
$state: $state,
$rootScope: $rootScope,
$uibModalInstance: $uibModalInstance,
$scope: scope,
$uibModal: $uibModal
});
scope.$digest();
}
});
}) ();
我错过了什么吗?任何输入表示赞赏。请让我知道这里出了什么问题。
【问题讨论】:
标签: jasmine angularjs-scope angular-ui-bootstrap testcase angular1.6