如何在 Angular / Karma 单元测试中忽略 run.js?
How to ignore a run.js in Angular / Karma unit testing?
我有一个文件 run.js
包含:
window.map.run([
'$rootScope', '$location', 'cache', 'userCache',
function($rootScope, $location, cache, userCache) {
userCache.checkSession().then(function(result) {
if(result.userId) {
cache.set('login', 'successfulLogin', true);
if($location.path() !== '/patients') {
$location.path('/patients');
}
}
});
}
]);
这会在应用加载时运行。这通常是很好的行为。但是当我对控制器进行单元测试时,一切都变得一团糟。我无法弄清楚如何 spy
或 mock
这个所以它是错误的。有什么想法吗?
谢谢!
您可以通过在 karma.conf 文件中指定相关模式来排除 run.js
**/!(run).js
或者您可以将您的应用拆分为更小的模块,并在单元测试期间仅加载相关模块。
我有一个文件 run.js
包含:
window.map.run([
'$rootScope', '$location', 'cache', 'userCache',
function($rootScope, $location, cache, userCache) {
userCache.checkSession().then(function(result) {
if(result.userId) {
cache.set('login', 'successfulLogin', true);
if($location.path() !== '/patients') {
$location.path('/patients');
}
}
});
}
]);
这会在应用加载时运行。这通常是很好的行为。但是当我对控制器进行单元测试时,一切都变得一团糟。我无法弄清楚如何 spy
或 mock
这个所以它是错误的。有什么想法吗?
谢谢!
您可以通过在 karma.conf 文件中指定相关模式来排除 run.js
**/!(run).js
或者您可以将您的应用拆分为更小的模块,并在单元测试期间仅加载相关模块。