【问题标题】:Mocha Chai test case for angular configuration file角度配置文件的 Mocha Chai 测试用例
【发布时间】:2015-02-19 12:10:11
【问题描述】:

我很难解决 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')。

【问题讨论】:

  • 您是否遇到了一些错误。我不确定您要测试什么。
  • 我已将 templateUrl : "scripts/my-module/views/my-module.html" 更改为 templateUrl: function(){ return 'scripts/my-module/views/my-module.html ';} 这会减少 Karma 测试代码的覆盖率。所以我试图通过我的控制器来覆盖这个功能。没有返回类型函数到 templateUrl 代码覆盖率已满。

标签: javascript angularjs mocha.js chai


【解决方案1】:

您可以做的是在您的测试中注入$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 服务。

【讨论】:

  • 出现错误:[$injector:unpr]未知提供者:$routeProvider
  • 正如我所说的注入 $state 服务而不是 $route。
  • it("应该加载页面。", inject(function ($location, $rootScope, $state, $httpBackend) { $httpBackend.whenGET("scripts/my-module/views/my -module.html").respond("
    "); $location.path("/my-module"); $rootScope.$digest(); expect($location.path()).toBe( "/我的模块"); }));这给出了 undefined is not a function at expect
  • 这个测试是针对jasmine的,可能mocha中的断言语句不一样。
  • 我正在使用摩卡柴
【解决方案2】:

我是这样做的

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

这对我有用

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多