我正在编写一些使用FileReader从一些输入文件加载数据的Java代码.我正在大量使用TDD,并且我想添加一些测试,以确保在我完成它时通过在阅读器上调用close()来正确清理.不幸的是,我无法想出一个很好的方法来测试它.有人有任何见解吗?
编辑添加:我知道我可以使用模拟对象显式测试close调用,但我想尽可能避免使用它,部分原因是因为我发现它们导致了一些比较脆弱的代码,部分是因为我很好奇它是否可能编写能识别不关闭文件效果的代码.)
我认为这样做的方法是将FileReader或创建FileReader的Factory注入您的类.然后在单元测试中,您可以注入FileReader的模拟版本,并检查其上是否已调用正确的方法.您可能希望查看JMock以创建模拟FileReader并设置close方法调用的期望.