【发布时间】:2014-06-23 12:42:42
【问题描述】:
我想测试特定函数在测试期间是否运行回调。例如,在我下面的简化代码中, checker.check() 检查数字,并且在这个特定测试中给出的数字不应运行回调。
test('Do not raise false alerts', function(done){
var checker = setupChecker(function(){
done('bad alert')
})
checker.check(60)
checker.check(70)
checker.check(80)
})
如果从未调用过done(),基本上我希望测试超时。
我当然可以为此目的使用 setTimeout(),但我认为 Mocha 中可能为此目的内置了一些东西。
我还可以在不应该发出警报时向 checker() 添加第二个回调,但这让我很震惊test-induced design damage,我想避免这种情况。
【问题讨论】:
-
你不能用应该运行回调的数字来运行测试,以确认测试正常吗?
-
@Cerbrus 是的,我已经有一个单独的测试来提高警报。我认为发出警报而不是发出错误警报是需要测试的单独功能。例如,代码可以一直发出警报,并且仍然通过引发警报测试。
-
@isi 对不起,我不明白“你不能总是需要在异步通信中解决此类问题。”方法。回复:
setTimeout()我已经在我的问题中解决了这个问题。 -
@isi 我明白我想你想说什么(虽然你的英语很难理解)。在您回答的问题中查看我的观点:
setTimeout()。 -
抱歉提高了混淆级别。我想说:我认为您需要使用超时来走路线,正如您在问题中已经提到的那样。或者,使用轮询机制。
标签: javascript node.js unit-testing mocha.js