Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mocha Chai角配置文件测试用例_Javascript_Angularjs_Mocha.js_Chai - Fatal编程技术网

Javascript Mocha Chai角配置文件测试用例

Javascript Mocha Chai角配置文件测试用例,javascript,angularjs,mocha.js,chai,Javascript,Angularjs,Mocha.js,Chai,我很难解决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-mo

我很难解决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”返回函数的mocha chai测试用例,该函数返回一个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");
    }));
it(“应该加载页面”)、inject(函数($rootScope、$location、$route、$httpBackend){
$httpBackend.whenGET(“scripts/my module/views/my module.html”)。响应(“”);
$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');
}));

这对我很有用

你有什么错误吗。我不确定您要测试什么。我已将templateUrl:“scripts/my module/views/my module.html”更改为templateUrl:function(){return'scripts/my module/views/my module.html';},这减少了Karma测试代码的覆盖率。所以我试图通过我的控制器来实现这个功能。没有将返回类型函数用于模板URL代码覆盖率已满。获取错误:[$injector:unpr]未知提供程序:$routeProvider,如我所说,注入$state服务而不是$route。它(“应加载页面”)、注入(函数($location、$rootScope、$state、$httpBackend){$httpBackend.whenGET(“scripts/my module/views/my module.html”).respond(“”;$location.path(“/mymodule”);$rootScope.digest();expect($location.path()).toBe(“/mymodule”);});这给出了一个未定义的函数。这个测试是针对jasmine的,可能mocha中的断言语句不同。我使用的是MochaChai