基本上,我正在从一个项目移植到另一个项目,并且许多测试失败并显示以下错误消息:
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');
});