实际上,Karma Jasmine使用$ httpBackend.flush()进行测试。失败

时间:2016-05-18 14:27:34

标签: angularjs jasmine karma-runner karma-jasmine

基本上,我正在从一个项目移植到另一个项目,并且许多测试失败并显示以下错误消息:

Error: Unexpected request: GET /api/v1/foo/getFoobar

查看后,这是默认路由加载的结果。原始项目中没有发生这种情况。我猜它是配置问题,但我不确定。

我已经确认注释掉“其他”路线可以解决问题,但之后没有默认路线。值得注意的是,我正在使用angular-router-ui。

值得注意的是,这将在任何测试中发生,并在$httpBackend.flush();运行时公开。加载什么服务或模块并不重要。

karma.config.js

module.exports = function (config) {
    var karmaConfig =
    {
        basePath: './',

        files: [
            /* relevant files */
        ],

        frameworks: ['jasmine'],
        reporters: ['dots' /*, 'coverage'*/],
        browsers: ['PhantomJS'],
        browserNoActivityTimeout: 60000,
        captureTimeout: 60000,
        autoWatch: false,
        singleRun: false,

        plugins: [
            'karma-jasmine',
            'karma-coverage',
            'karma-chrome-launcher',
            'karma-spec-reporter',
            'karma-phantomjs-launcher'
        ]

    };
    config.set(karmaConfig);
};

routing.ts

namespace cg.web.client
{
    export interface ICGState extends ng.ui.IState {
        title: string;
    }
}

app.config(($stateProvider: ng.ui.IStateProvider, $urlRouterProvider: ng.ui.IUrlRouterProvider) => {
    $stateProvider.state('standard', { url: "/standard", templateUrl: "client/common/ui/master/standard.html" });

    $stateProvider
        .state('standard.default', {
            templateUrl: 'default/ui/master.html',
            data: { isdefault: true }
        })
        .state('standard.default.home', <cg.web.client.ICGState>{
            templateUrl: 'default/home/ui/main.html',
            url: '/home'
        })
        .state('standard.default.search', <cg.web.client.ICGState>{
            templateUrl: 'default/search/ui/main.html',
            url: '/search/:active'
        })
        .state('standard.default.profile', {
            templateUrl: 'default/ui/master.html',
            data: { isdefault: true }
        })        

    $urlRouterProvider.otherwise('/standard/home');
});

0 个答案:

没有答案