javascript - 玩笑或普通 JS 单元测试库中的 mockjax 等效项(例如 Karma Jasmine )

标签 javascript unit-testing mockjax

您好,我想对我的应用程序的一些 ajax 请求进行一个非常基本的单元测试。 http://jsfiddle.net/Orbifold/sqdzzvey/

我想知道您在应用程序中使用什么来模拟端点,就像在这里完成的那样:

$.mockjax({
    url: "/orbifold/api",
    responseTime: 3000,
    responseText: {
        "version": "2.3.15" 
    }
});

我希望有相同的行为,而不需要 jQuery,而是纯 js。 我希望在任何其他框架中获得相同的结果。 请附上一个工作 fiddle 。 我不确定这是否可能或只能通过 qunit 完成,所以请赐教。

最佳答案

我建议使用Sinon如果你不想包含 jQuery。您可以创建“假服务器”来执行非常相似的功能(尽管某些事情的自动化程度较低):

可能在某些设置方法中...

const server = sinon.createFakeServer();
server.autoRespond = true;

在你的测试中...

server.respondWith(
  "GET",
  "/orbifold/api",
  [200, { "X-some-header": "foobar" }, '{"version": "2.3.15"}']
);

// now run your code that makes an ajax call

// then do your assertions/callbacks/etc

然后在你的 TEARDOWN 方法中...

server.restore();

关于javascript - 玩笑或普通 JS 单元测试库中的 mockjax 等效项(例如 Karma Jasmine ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41308100/

相关文章:

javascript - 更新模板并调用 $digest 不会触发具有正确参数的 $watch - 单元测试 angularjs

jquery - 使用 jquery-mockjax.js stub 进行 Jasmine 测试

javascript - 错误: Uncaught TypeError: undefined is not a function

javascript - Javascript 中的秒表程序在窗口加载时启动,而不是 onclick

javascript - 正则表达式:在一个字符串中多次检查javascript

javascript - 如何在不重复代码的情况下对多个 div 使用相同的 jQuery 函数

unit-testing - 如果使用私有(private)访问器,针对 3.5 框架的 VS2010 SP1 单元测试会失败

perl - 如何调试单个 Perl 单元测试子?

javascript - 使用 AJAX 的动态级联下拉列表

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