4 回答

TA贡献1856条经验 获得超5个赞
单元测试
Person方法name_length_opinion()是否值得进行单元测试,如果是的话,它将是什么样?
您是否要确保它按照您的想法做,并确保将来不会损坏?如果是这样,请为此编写一个单元测试。
并且该测试只是为了确认没有人触摸代码而存在
单元测试更多是关于确保类符合其指定的合同。您不必为所有内容编写单元测试,但是,如果这是一种简单的方法,无论如何,它都应该是一个简单的单元测试。
重复
似乎对此方法进行的任何测试都只会重述其实现
您不应该重复算法,而应该使用用例。例如,NameLengthEvaluator
截止值为的a10
应该是以下简称:
乔治
玛丽
这些是长名称:
麦克刀
开膛手杰克
因此,您应该验证该方法正确报告了这些名称的缩写。您还应该测试NameLengthEvaluator
截断为的a4
将报告Mary
为短而其他报告为长。
丢码?
如果您曾经编写过一个类,然后编写了一个主方法,该方法只是运行该类以确保其执行了预期的工作(然后在移至另一个类时就将该主方法扔掉了),那么您已经编写了单元测试。但是不要丢掉它,而要保存并将其转换为单元测试,以便将来可以确保您没有破坏任何东西。
外部代码
通常,是否有一种很好的方法来测试具有完全外部功能的类的简单方法
好吧,如果它完全是外部的,那么为什么要在该类上使用它呢?通常,您至少有一些可以测试的逻辑。在这种情况下,您可以测试name_length_opinion
返回的结果My names is long
或My names is short
正确的情况。

TA贡献1841条经验 获得超3个赞
这实际上取决于该代码的生命周期。显然,在当前状态下,该方法显然是正确的,并且单元测试更多地是关于其行为方式的规范。如果您打算在将来进行更改(NameLengthEvaluator
例如,以某种方式重新实现),那么进行单元测试就很好了,因为运行测试会捕获任何回归。但是在这种情况下,您似乎不太可能进行任何更改,因此测试可能过度(尽管进行了健全的检查)。
添加回答
举报