【发布时间】:2020-06-29 12:07:28
【问题描述】:
我继承了一个项目,其中包含一些验证空输入的单元测试,即使在参数中明确说明它们是强制性的。
以下是生产代码的示例。
class Pasta {
getIngredient(name: string) {
if(name == null) {
throw "need input"
}
console.log(name)
}
}
var p = new Pasta()
p.getIngredient("noodles")
p.getIngredient()
我主要担心的是,在打字稿中执行此操作时,它会清楚地说明语法错误,因为函数 getIngredient() 需要输入一些内容。我知道全面测试是关键,但这甚至是必要的吗?它在 IDE 级别引发错误的事实意味着不应该这样做,但是为了全面性,该代码可以容忍错误,如果这是 Kotlin,它甚至不会编译。
我认为这些台词
if(name == null) {
throw "need input"
}
甚至不需要它的测试。
如果您认为有必要,为什么会这样?谢谢。
【问题讨论】:
-
你的评估似乎是正确的——它闻起来像双重测试。也就是说,您可能希望默认的 null 输入行为是“需要输入”而不是一般的语法错误。