我被分配了一个关于为一些已经实现的类编写单元测试的任务。
目前我并不是真正了解每个班级的目的。我担心的是,我是否应该(1)深入研究实施,或者(2)只是简单地看一下输入 - 每个类的预期输出(以及它的方法)?
IMO:
(1)有一个优点,我可以看到一些潜在的错误,以便我可以设计可以涵盖这些情况的单元测试。
另一方面,(1)的缺点是(a)我可能会因实施而受到偏见,(b):需要时间。
答案 0 :(得分:2)
实际上,你做两者。
首先,您首先关注被测试类的公开合同。所以是的,看输入/输出应该是你的第一站#34;
你知道 - 理想情况下,你的单元测试不需要任何嘲弄。您创建了一些实例underTest
;你叫一个方法;您观察/验证某些行为(例如,根据实际返回值声明预期)。
但当然,有时候值得查看实施细节。
所以,合理的程序是:
根据覆盖范围数字,您可以得出进一步的结论,例如:
最后:更多的是反模式来创建单元测试(或多或少)重新编程实现。您确实希望避免单元测试除了为生产代码正在进行的调用配置模拟外,别无其他操作。事情是:当您测试实现细节时,任何实现更改(如简单的重构/重新排序)都可能会破坏您的单元测试。