私たちは、JS重いウェブアプリケーション用のQUnit JavaScriptテストを実装しようとしています。私たちは、jQuery AJAXリクエストを含むメソッドを正常にテストする方法を見つけるのに苦労しています。私たちは、好ましくは、代わりに本物のsomeURL.php
のスタブURLで、fire
メソッドをテストする方法を見つけようとしているQUnitでユニットテストAJAXリクエスト
var X = function() {
this.fire = function() {
$.ajax("someURL.php", {
data: {
userId: "james"
},
dataType: "json",
success: function(data) {
//Do stuff
}
});
};
};
var myX = new X();
myX.fire();
:たとえば、私たちは以下のコンストラクタ関数(明らかにこれは非常に単純化した例がある)を持っています。
現時点で私には唯一明らかな解決策は、コンストラクタ関数の引数としてURLとsuccess
コールバックを追加することです。こうして、テストでは、X
という新しいインスタンスを作成し、スタブURLを渡し、スタブが応答を返すときに実行するコールバックを渡すことができます。例:
test("Test AJAX function", function() {
stop();
var myX = new X();
//Call the AJAX function, passing in the stub URL and success callback
myX.fire("stub.php", function(data) {
console.log(data);
start();
});
});
しかし、これは非常に素晴らしい解決策のようには見えません。より良い方法がありますか? jQueryを使って
これは素晴らしいです。ありがとうございました:) –