4

例如,片段 A

String readSource(String file);

片段 B

String readSource(InputStream in);

所以如果我们将接口定义为A,那么我们只能创建一个文件,只是为了测试。但是一段时间后管理测试文件会变得相当困难。所以使用B接口,会使测试更容易。我只需要创建一个假的InputStream,然后检查该方法是否返回我们想要的结果。但是我们必须IOException在每次调用这个方法之前处理好。

4

2 回答 2

1

如果您遵循 TDD,那么我会说采用更可测试的方法,但这确实是个人喜好问题。快速思考……使用代码片段 B 时,代码是否易于使用/维护?如果是这样,那么就没有缺点,这绝对是要走的路。

于 2012-12-19T14:20:58.413 回答
1

如果readSource()做的不仅仅是返回文件的内容,我肯定会选择解决方案 B。

除了更好的可测试性之外,引入一个新的抽象概念InputStream(从它(单一责任原则)。

于 2012-12-27T14:42:36.650 回答