sinon 模拟 GET、POST、PUT 和 DELETE 方法断言每次都失败。不知道为什么

sinon mocking GET, POST, PUT and DELETE methods assertions fail everytime. no idea why

正在学习 nodejs 的 sinon 和 nodeUnit。编写了简单的 module 来处理 GET、POST、PUT 和 DELETE 方法。

然后开始写单元测试。现在我的问题有两个方面:

一个是:在 GET test 中,当我指定 requestMock.method = 'GET'; 然后 运行 nodeunit test-http-module.js 测试失败,在查看调用堆栈时显示 POST 请求失败(handlePostRequest 在下面的调用堆栈中突出显示)。

两个是:当将 requestMock.method = 'GET'; 更改为 'POST', 'PUT' or 'DELETE' 时,无论我如何更改,测试仍然失败!但在后一种情况下,调用堆栈会显示指向的正确方法。

我认为有一个问题导致连续失败,GET 被定向到 POST

请解释哪里出了问题。

ExpectationError: Unexpected call: writeHead(200, { Content-Type: "text/plain" })

Expectation met: writeHead(200, { Content-Type: "text/plain" }[, ...]) once

at Object.fail (D:\Projects\node-book\node_modules\sinon\lib\sinon\mock-expectation.js:281:25)

at Object.invokeMethod (D:\Projects\node-book\node_modules\sinon\lib\sinon\mock.js:174:25)

at Object.writeHead (D:\Projects\node-book\node_modules\sinon\lib\sinon\mock.js:67:35)

at handlePostRequest (D:\Projects\node-book\modules\http-module.js:8:14)

at Object.handleRequest (D:\Projects\node-book\modules\http-module.js:34:26)

at Object.exports.handleGetRequestTest (D:\Projects\node-book\unit-testing-intro\test-http-module.js:22:21)

switch.

的情况下,您只是缺少 break; 个陈述