问题标签 [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.

0 投票
1 回答
183 浏览

ember.js - Ember 数据侧载 mockjax 调用

我尝试通过 mockjax 为 ember 数据建模 ajax 调用。

我的模型:

我尝试order通过mockjax. (按下按钮。)呼叫后根据控制台

Ember 数据尝试第二次调用

首先我不明白为什么是第二个电话?服务按我的顺序加载 JSON

以及为什么要尝试 ember-data 调用记录App.Service:ember518:1而不是它的 id “1”?

这是JsBin

http://jsbin.com/finahuna/1/edit

0 投票
1 回答
1788 浏览

jquery - 使用 mockjax 模拟休息 API 调用

我正在使用 ember-cli 开发一个 ember 应用程序和 ember-data,并使用对 rails 后端的 restful API 调用。

也使用 qunit 进行测试。(https://github.com/appendto/jquery-mockjax用于模拟 AJAX 请求)

这是在模拟 AJAX 请求时面临的问题

在控制台上它产生的输出为

这里 API 是使用 restful 适配器调用的,而不是使用模拟的 AJAX 调用。

我该如何解决这个问题?

0 投票
1 回答
179 浏览

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 仅供参考。

0 投票
1 回答
182 浏览

jasmine - Karma runner 和 mockjax 在 DEBUG 中的工作方式不同

我有从我的茉莉花测试中调用的这段代码。

我得到绿色窗口,然后调出控制台,按 f5 重新运行测试,但没有任何反应。

所以我点击右上角的大调试按钮,然后在控制台打开的情况下按 f5,它正在输出数据。

为什么 .done 只会在调试模式下被击中?

当我逐步使用每个窗口时,它完全跳过了 .done where-因为我在调试时可以看到它正在完成。

0 投票
2 回答
151 浏览

ajax - 我可以在没有将 done 传递给我的实际实现的情况下调用 done 吗?

我正在编写一些 jasmine 测试并使用 mockjax 来模拟​​我的 ajax 调用。我知道 jasmine 需要一些额外的工作才能使其异步工作,但我不喜欢我的解决方案。

我将 ' done' 传递到我的实际实现中,然后在我的 ajax 请求的承诺中调用它。

所有示例似乎都使用 setTimeouts 作为“模拟”,在我看来这并不完全有帮助。

这里有一些代码可以帮助理解:

茉莉花

执行

我对这一切都错了吗?

只是为了重新迭代,我想让 jasmine 知道什么时候 mockjax / ajax 是 .done() 而无需done从 jasmine 传入我的视图模型。

0 投票
2 回答
555 浏览

javascript - responseTime 在 Mockjax 中不起作用

我需要模拟很长的响应时间。我的 Moockjax 正在工作——它提供了正确的模拟数据。但是我的 ajax 调用是在我加载页面的第二秒完成的,即使我将 responseTime 设置为 20 秒。

你有想法吗?

我将测试页面减少到最低限度,以排除其他潜在的错误来源:

我还用 CasperJS 和 Mockjax(在 casper.evaluate 内部)编写了一个测试。那里也一样。

这是我的 CasperJS 代码

如果你安装了 CasperJS,你应该可以运行它npm install jquery-mockjax然后casperjs test.js. 它20 秒内给了我这个输出:

模拟输出

我还在这里写了一篇关于它的博客文章。

0 投票
1 回答
1133 浏览

knockout.js - 使用 qunit 和 mockjax 测试 ajax 调用

我正在尝试测试一个 ajax 调用。我需要使用正确的数据和结果来测试是否调用了正确的 url。从这个失败的测试开始。我得到的错误是“预期:已保存,实际:”。

我的淘汰视图模型中的功能 -

Qunit 测试 -

0 投票
2 回答
390 浏览

javascript - MockJAX 没有响应 CasperJS

下面是我使用 casperjs 和 mockjax 的代码。但是,mockjax 不能拦截 ajax 调用。它返回 ajax 响应而不是模拟响应。此外, $.mockjax.mockedAjaxCalls().length 这不会打印任何东西。知道我在这里做什么吗?

除了外部评估上下文之外,有什么方法可以实际打印 $.mockjax.mockedAjaxCalls() 的值吗?请注意,mock4.png 确实显示了一个屏幕截图,表明 mockjax 回调没有发生。

0 投票
1 回答
1770 浏览

javascript - MockJax 没有在 JavaScript 应用程序中发送对我的 AJAX 请求的响应

我正在使用一个jQuery名为的库MockAjax,它允许您模拟/测试真正的 AJAX 调用。

在我的应用程序中,我可以使用 AJAX 请求的实时应用程序版本,MockAjax并将拦截 AJAX 请求并以 Mock 响应进行响应!

我还在使用另一个M<ockJson类似的库,但它允许您生成模拟 JSON 响应。

一起使用这两个库,我的应用程序发出 AJAX 请求。 MockAjax捕获 AJAX 请求,然后MockJson生成并返回随机JSON响应。

在我过去的项目中,这一直很好,直到今天都没有问题......

现在我的应用程序运行良好,我决定是时候将 JavaScript 重组为更结构化的版本了。(将 DOM 事件、任务等放入代码段)。

这就是我的问题开始的地方......

在我的新代码中,

  1. 我的应用程序发出 AJAX 请求。
  2. MockAjax捕获AJAX请求。
  3. MockJson被调用以获得JSON响应
  4. 错误这就是一切都出错的地方......

在这最后一步,它应该将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();设置MockAjaxMockJson代码
  • 然后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.responseText I believe is what is supposed to be returned to the Applications originalAJAX` 调用。看来这就是问题所在!它似乎没有将响应返回到最初请求它的原始 AJAX 代码!

这可能是某种范围问题吗?

0 投票
1 回答
721 浏览

javascript - 延迟的 jQuery AJAX 请求不运行 done() 回调函数

我已经设置了一个简单的演示,使用带有 AJAX 请求的 jQuery Deferred 对象来模拟我的应用程序是如何做的。

我的问题是,自从我从旧的非延迟方法切换以来,我无法获得成功回调。

fail()调用回调。有人可以帮我成功回调吗?我看不出哪里出错了?感谢任何帮助

我的演示在这里http://jsfiddle.net/jasondavis/y645yp4g/4/

我以前的 AJAX 调用是这样的......

使用延迟对象的新 AJAX 调用...

对 /gettask 的 AJAX 请求的模拟 AJAX 响应