所以,我在想,我得出结论,当单元测试时,即使一个人想要主要基于行为类型测试(例如,使用模拟),我最终总是要至少对叶子类进行基于状态的测试(在依赖图中)。
这是对的吗?
PS:我当然要排除必须经常使用的稳定依赖项,例如Java / C#API库。
答案 0 :(得分:1)
是的,在依赖关系图中测试叶子类的唯一方法是执行传统的基于状态的单元测试(在Fowler的术语中进行“classical”测试),因为它们没有协作者,因此没有钩子你的观察。
但这是件好事:编写基于状态的测试的机会值得庆祝!与依赖于实现细节的行为测试相比,传统的黑盒单元测试更容易编写,需要更少的设置代码,并且打破的频率更低。
通常只会出于必要性而进行行为测试。
答案 1 :(得分:0)
我认为这是一种很好的方法,特别是如果经常使用这些类的话。