Mocha Chai角度配置文件的测试用例

时间:2015-02-19 12:10:12

标签: javascript angularjs mocha chai

我很难解决角度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"的返回功能覆盖摩卡柴测试用例。返回一个网址(' scripts / my-module / views / my-module.html')。

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以做的是将$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服务。

答案 1 :(得分:0)

我做的就像

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');
}));

这对我有用