问题标签 [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 数据尝试第二次调用
首先我不明白为什么是第二个电话?服务按我的顺序加载 JSON
以及为什么要尝试 ember-data 调用记录App.Service:ember518:1
而不是它的 id “1”?
这是JsBin
jquery - 使用 mockjax 模拟休息 API 调用
我正在使用 ember-cli 开发一个 ember 应用程序和 ember-data,并使用对 rails 后端的 restful API 调用。
也使用 qunit 进行测试。(https://github.com/appendto/jquery-mockjax用于模拟 AJAX 请求)
这是在模拟 AJAX 请求时面临的问题
在控制台上它产生的输出为
这里 API 是使用 restful 适配器调用的,而不是使用模拟的 AJAX 调用。
我该如何解决这个问题?
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 不起作用(我认为),因为它返回一个匿名 JavaScript 对象,而不是 Person 对象。
$.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 仅供参考。
jasmine - Karma runner 和 mockjax 在 DEBUG 中的工作方式不同
我有从我的茉莉花测试中调用的这段代码。
我得到绿色窗口,然后调出控制台,按 f5 重新运行测试,但没有任何反应。
所以我点击右上角的大调试按钮,然后在控制台打开的情况下按 f5,它正在输出数据。
为什么 .done 只会在调试模式下被击中?
当我逐步使用每个窗口时,它完全跳过了 .done where-因为我在调试时可以看到它正在完成。
ajax - 我可以在没有将 done 传递给我的实际实现的情况下调用 done 吗?
我正在编写一些 jasmine 测试并使用 mockjax 来模拟我的 ajax 调用。我知道 jasmine 需要一些额外的工作才能使其异步工作,但我不喜欢我的解决方案。
我将 ' done
' 传递到我的实际实现中,然后在我的 ajax 请求的承诺中调用它。
所有示例似乎都使用 setTimeouts 作为“模拟”,在我看来这并不完全有帮助。
这里有一些代码可以帮助理解:
茉莉花
执行
我对这一切都错了吗?
只是为了重新迭代,我想让 jasmine 知道什么时候 mockjax / ajax 是 .done() 而无需done
从 jasmine 传入我的视图模型。
javascript - responseTime 在 Mockjax 中不起作用
我需要模拟很长的响应时间。我的 Moockjax 正在工作——它提供了正确的模拟数据。但是我的 ajax 调用是在我加载页面的第二秒完成的,即使我将 responseTime 设置为 20 秒。
你有想法吗?
我将测试页面减少到最低限度,以排除其他潜在的错误来源:
我还用 CasperJS 和 Mockjax(在 casper.evaluate 内部)编写了一个测试。那里也一样。
这是我的 CasperJS 代码
如果你安装了 CasperJS,你应该可以运行它npm install jquery-mockjax
然后casperjs test.js
. 它在20 秒内给了我这个输出:
我还在这里写了一篇关于它的博客文章。
knockout.js - 使用 qunit 和 mockjax 测试 ajax 调用
我正在尝试测试一个 ajax 调用。我需要使用正确的数据和结果来测试是否调用了正确的 url。从这个失败的测试开始。我得到的错误是“预期:已保存,实际:”。
我的淘汰视图模型中的功能 -
Qunit 测试 -
javascript - MockJAX 没有响应 CasperJS
下面是我使用 casperjs 和 mockjax 的代码。但是,mockjax 不能拦截 ajax 调用。它返回 ajax 响应而不是模拟响应。此外, $.mockjax.mockedAjaxCalls().length 这不会打印任何东西。知道我在这里做什么吗?
除了外部评估上下文之外,有什么方法可以实际打印 $.mockjax.mockedAjaxCalls() 的值吗?请注意,mock4.png 确实显示了一个屏幕截图,表明 mockjax 回调没有发生。
javascript - MockJax 没有在 JavaScript 应用程序中发送对我的 AJAX 请求的响应
我正在使用一个jQuery
名为的库MockAjax
,它允许您模拟/测试真正的 AJAX 调用。
在我的应用程序中,我可以使用 AJAX 请求的实时应用程序版本,MockAjax
并将拦截 AJAX 请求并以 Mock 响应进行响应!
我还在使用另一个M<ockJson
类似的库,但它允许您生成模拟 JSON 响应。
一起使用这两个库,我的应用程序发出 AJAX 请求。 MockAjax
捕获 AJAX 请求,然后MockJson
生成并返回随机JSON
响应。
在我过去的项目中,这一直很好,直到今天都没有问题......
现在我的应用程序运行良好,我决定是时候将 JavaScript 重组为更结构化的版本了。(将 DOM 事件、任务等放入代码段)。
这就是我的问题开始的地方......
在我的新代码中,
- 我的应用程序发出 AJAX 请求。
MockAjax
捕获AJAX
请求。MockJson
被调用以获得JSON
响应- 错误这就是一切都出错的地方......
在这最后一步,它应该将JSON
响应传递回原来的AJAX
调用Success
函数。它根本没有!
我在控制台中没有任何错误或任何内容。alert()
我在我的 AJAX 调用函数中设置了一个简单的success()
函数,它甚至无法触发警报!
我不确定是否存在某种范围问题或问题可能是什么。当我的应用程序是扁平的时,glbal 根级别中的所有变量和函数都没有应用程序的结构......一切都有效。一旦我将所有内容都移到对象等中......除了没有将 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
响应。projectTaskModal.mockAjax.generateTaskEventsJson();
调用该函数,我让它将 JSON 响应打印到控制台中,这样我就可以看到它正在生成它!- 在我的
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 调用是这样的......
使用延迟对象的新 AJAX 调用...
对 /gettask 的 AJAX 请求的模拟 AJAX 响应