2017-09-22 3 views
0

私の目標は、私のテストの一つをデバッグすることです。私はモカをベースとし、SinonJSはスパイ、スタブ、モックを使用しています。何らかの未知の理由のために、私のajaxメソッドのスタブは機能しなくなりました。 1週間前に働いたが、リクエストが送信され、スタブはコールを追跡しない。モカ付きデバッグ、グローバルをロード

私はこれらの最も外側のdescribe

let sandbox = sinon.sandbox.create(); 
let ajaxStub = undefined; 

内側の線と、この持っている:とにかく、私の質問はこれで間違っているものではありません、私はおそらく他の場所で非常に愚かな何かをやっている

beforeEach(function() { 
    ajaxStub = sandbox.stub($, 'ajax'); 
}); 

afterEach(function() { 
    sandbox.restore(); 

}); 

をいくつかのデバッグはおそらくそれを解決することができます。私の問題は、デバッグ自体です。

mocha --debug-brk --inspect ./test/mytest.js 

これは、デバッグセッションを開始するためにコマンドラインで実行するものです。ライブラリはこの方法を追加したもjQuerysinon

そしてもちろんを含める -

私の問題は、私はすべての私のフレームワークの依存関係およびすべての私のグローバルをロードしていたと私は現在、がぶ飲みを使用していますテストを、実行することですそのコマンドラインを使ってテストをデバッグすると、NodeJSは環境に必要なファイルをロードせず、sinonの最初の参照で例外が発生します。

必要なファイルやテストを読み込んでテストを実行し、ブラウザのインス​​ペクタで手動でデバッグするhtmlページを作成することもできますが、これは避けたいものです。もっと自動化されたものはありますか?

私はNodeJSの専門家ではない、私はちょうど大体それが何であるかを理解し、それがどのように動作するか、私は、私は「私はそれが助けになることができ逃した何か:)

がある可能性がかなり確信しています今考えているのは、必要なファイルを見つけるためのバッチスクリプトですが、それだけです。

もうひとつ注意してください:コードベースは本当に古くて大きく、既存のコードをes6モジュールにリファクタリングする権限はありません。

答えて

0

私は解決策を見つけました:私はどのテストをデバッグするのかを記述するtestDebugLoader.jsスクリプトと、ロードする必要があるスクリプトへのパスの配列を作成します。

次に、配列をループし、必要なファイルをロードし、取得したテキストに対してevalを呼び出します。

関連する問題