Sinon.JS错误无效的URL,如何解决这个问题

时间:2016-02-01 19:03:42

标签: javascript unit-testing mocha 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' }

我不知道为什么会出现这样的错误。由于在我的情况下没有必要,我没有使用期望,我想用mocha测试sinon 感谢大家花时间阅读。

1 个答案:

答案 0 :(得分:1)

我使用Jasmine有相同的无效网址问题。

我必须使用xmlhttprequest

XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

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