我需要模拟很长的响应时间。我的 Moockjax 正在工作——它提供了正确的模拟数据。但是我的 ajax 调用是在我加载页面的第二秒完成的,即使我将 responseTime 设置为 20 秒。
你有想法吗?
我将测试页面减少到最低限度,以排除其他潜在的错误来源:
<!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();
如果你安装了 CasperJS,你应该可以运行它npm install jquery-mockjax
然后casperjs test.js
. 它在20 秒内给了我这个输出:
我还在这里写了一篇关于它的博客文章。