嘲笑每个领域或良好的api

时间:2011-03-21 20:43:53

标签: api testing encapsulation unit-testing

如何编写易于单元测试并同时封装数据的代码?

例如,如果我想要unittest某个类,我会声明所有字段的getter和setter。否则我不能注入嘲笑。另一方面,我想写一个真正需要公共方法的api非常好的类。

我相信你了解我。

1 个答案:

答案 0 :(得分:1)

如果你的类有一个需要模拟的协作者,那么它将从某个地方获得它 - 通过构造函数或通过setter。因此,拥有这些不是设计问题。

但我不会为所有东西都有吸气剂,除非它们自然是API的一部分。您应该测试被测对象的观察行为 - 这意味着您可以通过其公共API自然获得。

我曾经参与过一个项目,开发人员坚持让一切都公开,以便他可以测试内部状态。那是......嗯......好玩。