1

在我的 NodeUnit 测试中,我有这样一段代码:

exports['aTest'] = function(test){
...
var functionResult = test.doesNotThrow(aFunction(aParam));
...
}

但是调用doesNotThrow(...)后functionResult是未定义的,为什么test.doesNotThrow()不返回函数调用的结果呢?那将是相当优雅的。

4

1 回答 1

0

如源代码所示,它不会返回任何内容,这是因为 nodeunit 依赖于AssertionError确定套件是否成功,如您在此处看到的

你为什么要它返回一些东西,你期望什么返回值?
该库的目的是测试您的断言。它不应该返回一个值,因为这意味着给你信息来用那个值做一些事情,相反,当一个断言抛出时,你会得到一个控制台消息,说你的测试被破坏了。我相信这是一个很好的方法。

您的目标是在发生故障时得到通知,依靠库告诉您发生了什么故障,而不是深入研究细节,这就是我相信作者选择这种方式的原因。

于 2013-07-15T15:00:30.807 回答