問題タブ [mockjax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ember.js - Ember データのサイドロードされた mockjax 呼び出し
私は、mockjax を介して ember データの ajax 呼び出しをモデル化しようとしています。
私のモデル:
order
経由でレコードをロードしようとしていますmockjax
。(ボタンを押す) 通話後のコンソールによると
Ember データが 2 回目の呼び出しを試みる
まず第一に、なぜ2番目の呼び出しなのか理解できませんか? サービスは注文 JSON にサイドロードされます
また、ember-data がApp.Service:ember518:1
ID「1」ではなくレコードを呼び出そうとするのはなぜですか?
ここにJsBinがあります
ember.js - mockjax が ember-data オブジェクトを返すようにする方法
Ember データ モデルがあるとします (これは CoffeeScript です)。
Person = DS.Model.extend
firstName: DS.attr("string")
lastName: DS.attr("string")
または JavaScript として:
Person = DS.Model.extend({
firstName: DS.attr("string"),
lastName: DS.attr("string")
});
mockjax を使用してストアから Person オブジェクトを返すにはどうすればよいですか? この mockjax は、Person オブジェクトではなく、匿名の JavaScript オブジェクトを返すため、機能しません (私が思うに)。
$.mockjax
type: "GET"
url: "/people"
data: { firstName: "John"}
status: "200"
dataType: "json"
response: (d) ->
person =
{
id: 2
firstName: John
lastName: Smith
}
@responseText = person
または JavaScript として:
$.mockjax({
type: "GET",
url: "/people",
data: {
firstName: "John"
},
status: "200",
dataType: "json",
response: function(d) {
var person;
person = {
id: 2,
firstName: John,
lastName: Smith
};
return this.responseText = person;
}
});
私はES6参考までに使用しています。
ajax - done を実際の実装に渡さずに done を呼び出すことはできますか?
私はいくつかのジャスミン テストを作成し、mockjax を使用して ajax 呼び出しをモックしています。ジャスミンを非同期で動作させるには追加の作業が必要であることは知っていますが、私のソリューションは好きではありません。
' ' を実際の実装に渡しdone
、ajax リクエストの promise 内からこれを呼び出しています。
すべての例は、setTimeouts を「シミュレーション」として使用しているように見えますが、これは私の意見では完全には役に立ちません。
理解に役立つコードを次に示します。
ジャスミン
実装
私はこれについてすべて間違っていますか?
繰り返しますが、ジャスミンからビューモデルに渡さずに、mockjax / ajax が .done() であることをジャスミンに知らせたいと思いdone
ます。
javascript - responseTime が Mockjax で機能しない
長い応答時間をシミュレートする必要があります。私の Moockjax は機能しており、適切なモック データを提供しています。しかし、responseTime を 20 秒に設定したとしても、私の ajax 呼び出しはページをロードした瞬間に行われます。
アイデアはありますか?
ここで他の潜在的なエラーの原因を除外するために、テスト ページを最小限に減らしました。
また、CasperJS と Mockjax (casper.evaluate 内) を使用したテストも作成しました。そこは同じです。
ここに私のCasperJSコードがあります
npm install jquery-mockjax
CasperJS がインストールされている場合は、それから実行できるはずですcasperjs test.js
。20 秒以内に次の出力が得られます。
それについてのブログ記事もここに書きました。
javascript - MockJAX が CasperJS に応答しない
以下は casperjs と mockjax を使用する私のコードです。ただし、mockjax は ajax 呼び出しをインターセプトできません。モック レスポンスの代わりに ajax レスポンスを返します。また、 $.mockjax.mockedAjaxCalls().length これは何も出力しません。私がここで何をしているのか分かりますか?
$.mockjax.mockedAjaxCalls() の値を評価コンテキスト以外で実際に出力する方法はありますか?? mock4.png には、mockjax コールバックが発生していないことを示すスクリーンショットが表示されることに注意してください。
javascript - MockJax が JavaScript アプリケーションの AJAX リクエストに応答を送信しない
実際の AJAX 呼び出しをモック/テストできるjQuery
ライブラリを使用しています。MockAjax
私のアプリケーションでは、AJAX リクエストのライブ アプリ バージョンを使用でき、AJAX リクエストMockAjax
をインターセプトしてモック レスポンスで応答します。
私はまた、M<ockJson
似ている別のライブラリを使用していますが、代わりにモック JSON 応答を生成できます。
両方のライブラリを一緒に使用して、私のアプリケーションは AJAX リクエストを行います。 MockAjax
AJAX リクエストをキャッチし、ランダムなレスポンスをMockJson
生成して返します。JSON
私の過去のプロジェクトでは、これは今日まで問題なくうまく機能していました...
アプリケーションがかなりうまく機能するようになったので、今度は JavaScript をより構造化されたバージョンに再構築することにしました。(DOM イベント、タスクなどをコードのセクションに入れる)。
これが私の問題の始まりです....
私の新しいコードでは、
- 私のアプリはAJAXリクエストを行います。
MockAjax
リクエストをキャッチしAJAX
ます。MockJson
JSON
応答を取得するために呼び出されます- エラーこれはすべてがうまくいかないところです...
この最後のステップで、元の呼び出し関数JSON
に応答を返す必要があります。それは単にそうではありません!AJAX
Success
コンソールにエラーや何も表示されません。alert()
私は AJAX 呼び出し関数に単純な関数を設定しましたsuccess()
が、アラートをトリガーすることすらできません!
ある種のスコープの問題があるかどうか、または問題が何であるかはわかりません。私のアプリがフラットだったとき、グローバル ルート レベルのすべての変数と関数は、アプリの構造をまったく持たずに...すべて機能していました。すべてをオブジェクトなどに移動するとすぐに....MockAjax応答をReal Ajax応答に返さないというこの1つの問題を除いて、すべて機能します!
アプリ コードの 95% を削除し、このサンプルの問題を実行するための最小限のコードだけで再構築しました。問題のデモはこちら... http://jsbin.com/vugeki/1/edit?js
アプリの流れ:
projectTaskModal.init();
ページの読み込み時に実行されますThis fires off projectTaskModal.mockAjax.init();
MockAjax
とMockJson
コードを設定します- 次に、リクエスト
projectTaskModal.task.openTaskModal(projectTaskModal.cache.taskId);
を実行する実行されますAJAX
AJAX POST Request
に送信されます/gettaskevents
MockAjax
に送信されたリクエストをキャッチします/gettaskevents
MockAjax
次に、呼び出して応答MockJson
を生成します。その関数を呼び出すと、JSON 応答がコンソールに出力されるので、それが生成されていることがわかります。JSON
projectTaskModal.mockAjax.generateTaskEventsJson();
- 私の
MockAjax
コードでvar taskevents
は、応答を保持し、JSON
これに設定します...this.responseText = taskevents;
``this.responseTextI believe is what is supposed to be returned to the Applications original
AJAX` 呼び出し。ここに問題があるようです!最初に要求した元の AJAX コードに応答を返していないようです!
これはある種のスコープの問題でしょうか?
javascript - 延期された jQuery AJAX リクエストで done() コールバック関数が実行されない
アプリの動作をシミュレートするために、AJAX リクエストで jQuery Deferred オブジェクトを使用して簡単なデモをセットアップしました。
私の問題は、古い非遅延メソッドから切り替えて以来、成功のコールバックを取得できないことです。
コールバックのみfail()
が呼び出されます。誰かがコールバックを成功させるのを手伝ってくれますか? どこが間違っているのかわかりませんか?どんな助けにも感謝します
私のデモはこちらhttp://jsfiddle.net/jasondavis/y645yp4g/4/
私の古いAJAX呼び出しはこのようなものでした...
Deferred オブジェクトを使用した新しい AJAX 呼び出し...
/gettask への AJAX 要求に対するモック AJAX 応答