私はカルマテストのためにストライプオブジェクトをモックする際に問題を抱えています。これは最初にロードされたスクリプト(角ストライプの前)でなければなりません。角カルマテストでストライキを模倣する
私は私のカルマの設定でスクリプトでこれをロードしています:
var stripe = new function() {
this.setPublishableKey = function(key) {}
}
Object.defineProperty(window, 'Stripe', { value: stripe, configurable: true, enumerable: true, writable: true });
これは私がプロトタイプの方法を試してみましたが、それは私がこの方法を追加したメソッドを認識しませんAttempting to configurable attribute of unconfigurable property
を与えます。
window.Stripe = function();
window.Stripe.prototype.setPublishableKey = function() {}
これは与える:私はこの方法は、オブジェクトのように最後に
(Iは角ストライプでwindow.Stripeをダンプするとき、それは方法を示しているdoesntの)存在しないにトレースしていると信じてundefined is not a constructor (evaluating 'stripeProvider.setPublishableKey(config.stripeId)')
:
window.Stripe = {
...
収量:Stripe must be available as window.Stripe
。それは角度ストライプのように特別に機能が必要です。
stripeファイルをローカルにコピーした場合、どのようなストライプが動作しますか?私はstripe.comにいないことについて他のエラーが発生するので、私はそれを嘲笑したいと思います。
ソリューションおかげで私はこの角度の方法を解決することができた@estusします
angular.module('angular-stripe', []).provider('stripe', {
setPublishableKey: function() { },
$get: function() {}
})
beforeEach(module('app'));
上記本当のストライプに不足しているエラーをスローせずにangular-stripe
ロードを無効にするのに十分です。
わかりません。角ストライプファイルを含まない場合、私のコードがapp.jsにロードする角ストライプモジュールをモックする必要があります。これはどのようにこれを処理しますか? – cyberwombat
私はこれについてここに直接質問を投稿しましたhttp://stackoverflow.com/questions/37094761/how-to-mock-a-module-in-angular – cyberwombat
角ストライプは小さく、 'Stripe'サービス( 'Stripe'サービスを使用した' stripe'サービス)を提供しています。角度ストライプモジュールを完全または部分的に置き換えることは自由です。 Stripeグローバル 'module ''アプリケーション '、'角ストライプ '、($提供)=> {$ provide.constant(' Stripe '、MockedStripe)})'で十分であるかもしれません。 – estus