以一种聪明的方式调试Sinon.js

时间:2014-05-26 07:53:17

标签: sinon

我们正在使用Sinon.JS进行某些集成测试,而且我遇到了需要以某种方式进行调试的问题。我们正在使用fakeServer.create()方法,如下所示:

server = Sinon.fakeServer.create()
server.autoRespond = true
server.respondWith "GET", ...

通常在使用xhr时,只需打开chrome dev工具中的网络选项卡,即可看到对服务器的所有调用,服务器的顺序以及服务器的响应。这对调试非常有帮助。与Sinon合作时,我能获得类似的东西吗?

3 个答案:

答案 0 :(得分:0)

如果您在Google Chrome等浏览器中使用karma-runner,则可以使用“调试”功能。一般的想法是在禁用runonce的情况下启动业力测试,然后单击弹出的浏览器窗口上的调试按钮。您可以像往常一样在Web浏览器中设置断点并调试测试,包括以chrome格式打开网络选项卡。

答案 1 :(得分:0)

这方面的文档有点稀疏,但Sinon createFakeServer()的配置选项之一是logger,这是一个如何使用它的示例:

var server = sinon.createFakeServer({ logger: console.log });

这将产生:

Request:
  [FakeXMLHttpRequest] {
  async: true,
    errorFlag: false,
    eventListeners: {
    abort: [function () {}],
      error: [function () {}],
      load: [function () {}],
      loadend: [function () {}],
      loadstart: [function () {}],
      progress: [function () {}],
      timeout: [function () {}]
  },
  logError: function logError() {},
  method: "GET",
    onSend: function () {},
  onerror: function () {},
  onload: function () {},
  onreadystatechange: function () {},
  password: undefined,
    readyState: 1,
    requestBody: null,
    requestHeaders: {
    Accept: "application/json, text/javascript, */*; q=0.01",
    Content-Type: "text/plain;charset=utf-8",
    X-Requested-With: "XMLHttpRequest",
      twProjectsVer: "2.0"
  },
  response: (empty string),
  responseText: (empty string),
  responseType: (empty string),
  responseXML: null,
    sendFlag: true,
    status: 0,
    statusText: (empty string),
  timeout: 0,
    unsafeHeadersEnabled: function () {},
  upload: {
    eventListeners: {
      abort: [function () {}],
        error: [function () {}],
        load: [function () {}],
        loadend: [function () {}],
        loadstart: [function () {}],
        progress: [function () {}],
        timeout: [function () {}]
    }
  },
  url: "/entities.json?page=1&pageSize=50&offsetCount=0",
    username: undefined,
    withCredentials: false
}

Response:
  [404, {  }, (empty string)]

答案 2 :(得分:0)

为@dustinroepsch答案添加更多详细信息。 使用这些选项启动业力

karma start karma.conf.js --browsers=Chrome --single-run=false --debug

这将打开一个Google Chrome实例,该实例在测试完成后不会关闭。您应该能够在开发人员工具->源代码中查看源文件和测试文件。然后,您可以放置​​断点并重新加载页面以进行调试。