在nodejs函数中测试回调
Testing callback passing in nodejs function
通过下面的代码示例,我想知道。
function testMe( input, callback ) {
callback = callback || function () {}; /* 1 */
// process input ...
process( input, function (err, result ) {
if( err ) {
return callback( new Error('fail processing input') ); /* 2 */
}
return callback( null, result ); /* 3 */
});
}
-
我如何用SinonJS测试
callback
的以上3个位置? -
这是一个很好的做法,我重置回调在位置1?
感谢您的评论
这是一个很好的做法,我重置回调在位置1?
在您的例子中,不是,它是一个反模式。看看testMe
函数的语义,它被设计为接受输入并返回输出或错误。将回调设为可选只会掩盖错误,延迟bug检测,并使调试变得更加难以解决。如果调用者根本不需要输出,为什么要调用这个函数呢?默认回调函数实际上并没有帮助,因为好的程序流程和语义无法通过没有回调而获得的"即开即弃"/"仅副作用"行为来实现。
Aside:您的示例实际上没有任何异步行为。如果您的实际代码实际上是这样的,那么它可以同步返回并同步抛出错误——在这种情况下,回调是不必要的,也不是正确的。但我怀疑你已经"简化"了你的例子,但你的实际代码实际上是异步的。
相关文章:
- 测试Angular Service解决错误回调中的promise
- 当我的单元测试失败时,回调被调用了两次
- 使用jasmine测试JavaScript回调函数
- $watch回调每次在浏览器中触发,但在测试期间只触发一次
- 如何在没有空回调的情况下测试多个调用
- 使用qunit.js查询事件回调测试
- 使用Mocha.js进行Javascript测试:如何模拟Mocha中的回调
- Sinon-带有回调的存根函数-导致测试方法超时
- 调度程序未在开玩笑单元测试中注册回调
- 在 chai 测试中未由请求调用回调
- 省略摩卡回调测试
- 使用 Jasmine 测试异步回调
- AngularJS:如何在指令中测试回调函数
- 如何在javascript中单元测试回调逻辑
- 在nodejs函数中测试回调
- 我如何测试回调*不't*运行
- 在Jasmine中测试回调方法的功能
- 茉莉-测试回调
- 茉莉间谍以假ajax调用来测试回调结果
- 茉莉测试承诺.如何测试回调函数