長い応答時間をシミュレートする必要があります。私の Moockjax は機能しており、適切なモック データを提供しています。しかし、responseTime を 20 秒に設定したとしても、私の ajax 呼び出しはページをロードした瞬間に行われます。
アイデアはありますか?
ここで他の潜在的なエラーの原因を除外するために、テスト ページを最小限に減らしました。
<!DOCTYPE HTML>
<html>
<head>
<script src="jquery.js"></script>
<script src="../jquery.mockjax.js"></script>
<title>MockJax Tests</title>
</head>
<body>
<h1>A MockJax test.</h1>
<p>Take a look into the console.</p>
<script>
$.mockjax({
url: "foo.html",
responseTime: 20000,
responseText: "Hi! I am mockjax."
});
$.ajax({
async: false,
url: 'foo.html',
success:function(data){
console.log(data);
},
error:function(data){
console.log('It doesn’t work that way :(');
}
});
</script>
</body>
</html>
また、CasperJS と Mockjax (casper.evaluate 内) を使用したテストも作成しました。そこは同じです。
ここに私のCasperJSコードがあります
var casper = require("casper").create({
verbose: true,
logLevel: 'error',
clientScripts: ["node_modules/jquery-mockjax/jquery.mockjax.js"]
});
casper.on('remote.message', function(msg) {
this.echo('remote message caught: ' + msg);
})
casper.start('http://der-zyklop.de/', function() {
this.evaluate(function () {
$.mockjax({
url: "/blog/feed",
responseTime: 20000,
responseText: "Hi! I am mockjax!"
});
$.ajax({
async: false,
url: '/blog/feed',
success:function(data){
console.log(data);
},
error:function(data){
console.log('It doesn’t work that way :(');
}
});
});
});
casper.run();
npm install jquery-mockjax
CasperJS がインストールされている場合は、それから実行できるはずですcasperjs test.js
。20 秒以内に次の出力が得られます。
それについてのブログ記事もここに書きました。