私のアプリでkarmaテスト仕様を実行しようとすると、次のエラーが発生します。
Error: [$injector:modulerr] Failed to instantiate module adf.widget.tabularWidget due to:
Error: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
at Error (native)
at C:/Users/dell%20pc/Documents/Work/Client/widgets/TabularWidget/src/ta
bularWidget.js:22:43
at Object.invoke (C:/Users/dell%20pc/Documents/Work/Client/bower_compone...
ここで問題となるのは、テストを実行するとウィンドウプロパティをモックすることができないということです。この問題が発生したファイル..
'use strict';
(function (windows, angular, $, _) {
angular.module('adf.widget.tabularWidget')
.config(function (dashboardProvider) {
//more code
//issue line
var widgetDefsApiUrl = window.atob(window.api) +
"Widget/definitions?access_token=" + window.atob(window.acstkn);
});
})(window, angular, $, _);
を以下に示しますが、私はちょうどその行をコメントアウトするとき、すべてのテストケースは、すべての問題なしで大丈夫実行します。だから私が何とかwidgetDefsApiUrl
を嘲笑して、それを私のテストケースに注入すれば、私の問題は解決されるだろう。しかし、私はそれを行う方法がわかりません。誰でも正しい方向に向けることができますか?
編集: 私はこの問題を切り分けました。問題はwindow.api
はここでは定義されていないため、window.atob()
がエラーを出します。どのように私はこの問題を克服するだろうか?