javascript - Sinon.JS 错误 URL 无效,如何解决

标签 javascript unit-testing mocha.js sinon

我尝试了很多次,但总是行不通。 我使用 Mocha 单元测试。 这是我的代码单元测试:

var expect = require("expect");
var jQuery = require("jquery");
var sinon = require("sinon");

describe("SinonFakeServerWithJasmine", function() {
     var server;

     beforeEach(function() {
          server = sinon.fakeServer.create();
    });

    afterEach(function() {
        server.restore();
    });

    it("should fake a jQuery ajax request", function() {
        server.respondWith("GET", "/something", [200, {
                "Content-Type": "application/json"
            },
            '{ "stuff": "is", "awesome": "in here" }'
        ]);

        jQuery.ajax({
            url: "/something",
            success: function() {
                console.log("success");
            },
            error: function(err) {
                console.log(err);
            }
        });

        server.respond(); // Process all requests so far
    });

});

==> 这是日志错误 Jquery.ajax

{ readyState: 0,
  getResponseHeader: [Function],
  getAllResponseHeaders: [Function],
  setRequestHeader: [Function],
  overrideMimeType: [Function],
  statusCode: [Function],
  abort: [Function],
  state: [Function],
  always: [Function],
  then: [Function],
  promise: [Function],
  pipe: [Function],
  done: [Function],
  fail: [Function],
  progress: [Function],
  complete: [Function],
  success: [Function],
  error: [Function],
  status: 0,
  statusText: 'TypeError: Invalid URL' }

我不知道为什么会这样。我没有使用 expect,因为在我的情况下没有必要,我想用 mocha 测试 sinon 感谢大家花时间阅读。

最佳答案

我在使用 Jasmine 时遇到了同样的无效 URL 问题。

我不得不使用 xmlhttprequest .

XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

jQuery.ajaxSettings.xhr = function() {
    return new XMLHttpRequest();
};

关于javascript - Sinon.JS 错误 URL 无效,如何解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35138254/

相关文章:

javascript - 如何强制文件下载 mp3 而不是打开

unit-testing - ODOO [V8] 单元测试

java - 从网页中的 java servlet 检索数据

javascript - 我可以使用 JavaScript 闭包添加数字吗?

python - 在Python中,为什么当我在 Debug模式下运行mock_calls时,其中的call.__str__()调用数量不一致?

python - PyCharm 运行选择单元测试

带有 'import' js 文件的 JavaScript 测试 (mocha)

javascript - 使用 mocha/chai 测试时比较两个日期

javascript - 在 WebStorm 中通过断言的测试失败

javascript - AngularJS 在 Controller 中使用一个函数从服务返回数据以在 ng-repeat 中使用