我们正在使用Sinon.JS进行某些集成测试,而且我遇到了需要以某种方式进行调试的问题。我们正在使用fakeServer.create()
方法,如下所示:
server = Sinon.fakeServer.create()
server.autoRespond = true
server.respondWith "GET", ...
通常在使用xhr时,只需打开chrome dev工具中的网络选项卡,即可看到对服务器的所有调用,服务器的顺序以及服务器的响应。这对调试非常有帮助。与Sinon合作时,我能获得类似的东西吗?
答案 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实例,该实例在测试完成后不会关闭。您应该能够在开发人员工具->源代码中查看源文件和测试文件。然后,您可以放置断点并重新加载页面以进行调试。