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;
个陈述
正在学习 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;
个陈述