angular 配置文件的 Mocha Chai 测试用例
Mocha Chai test case for angular configuration file
我很难解决 angular js 配置文件的 mocha chai 测试用例。
angular.module('myApp.myModule', []).config(function ($stateProvider, $urlRouterProvider) {
$stateProvider.state('myModule', {
url: '/myModule',
templateUrl: function(){
return 'scripts/my-module/views/my-module.html';
},
controller: 'myModuleCtrl',
controllerAs: 'myCtrl',
css: 'styles/lazy-load/my-module.css'
});
$urlRouterProvider.otherwise('/');
})
我需要为 "templateUrl" 的 return 函数覆盖 mocha chai 测试用例,它是 returning a url ('scripts/my-module/views/my-module.html').
您可以做的是将 $location
和 $route
服务注入到您的测试中。设置一个 whenGET 来拦截实际请求,然后在转换完成后检查 $location
和 $route
配置。我之前做过类似的事情
it("should load the page.", inject(function ($rootScope, $location, $route, $httpBackend) {
$httpBackend.whenGET("scripts/my-module/views/my-module.html").respond("<div/>");
$location.path("/myModule");
$rootScope.$digest();
expect($location.path()).toBe("/myModule");
}));
我正在使用 $route
服务,您需要 $state
服务。
我喜欢
it('should load the page.', inject(function ($state) {
var state = $state.get('selectLine');
assert.isDefined(state.templateUrl());
expect(state.templateUrl()).to.equal('scripts/select-line-module/views/select-line.html');
}));
这对我有用
我很难解决 angular js 配置文件的 mocha chai 测试用例。
angular.module('myApp.myModule', []).config(function ($stateProvider, $urlRouterProvider) {
$stateProvider.state('myModule', {
url: '/myModule',
templateUrl: function(){
return 'scripts/my-module/views/my-module.html';
},
controller: 'myModuleCtrl',
controllerAs: 'myCtrl',
css: 'styles/lazy-load/my-module.css'
});
$urlRouterProvider.otherwise('/');
})
我需要为 "templateUrl" 的 return 函数覆盖 mocha chai 测试用例,它是 returning a url ('scripts/my-module/views/my-module.html').
您可以做的是将 $location
和 $route
服务注入到您的测试中。设置一个 whenGET 来拦截实际请求,然后在转换完成后检查 $location
和 $route
配置。我之前做过类似的事情
it("should load the page.", inject(function ($rootScope, $location, $route, $httpBackend) {
$httpBackend.whenGET("scripts/my-module/views/my-module.html").respond("<div/>");
$location.path("/myModule");
$rootScope.$digest();
expect($location.path()).toBe("/myModule");
}));
我正在使用 $route
服务,您需要 $state
服务。
我喜欢
it('should load the page.', inject(function ($state) {
var state = $state.get('selectLine');
assert.isDefined(state.templateUrl());
expect(state.templateUrl()).to.equal('scripts/select-line-module/views/select-line.html');
}));
这对我有用