【发布时间】:2018-07-09 08:41:55
【问题描述】:
如何对使用 try-with-resources 的方法进行单元测试?
由于它在 try 子句中使用 new 运算符,我无法模拟它。我不想使用 PowerMock。似乎唯一的方法是创建集成测试?
public void methodToBeTested(File file) {
try (FileInputStream fis = new FileInputStream(file)) {
//some logic I want to test which uses fis object
} catch (Exception e) {
//print stacktrace
}
}
【问题讨论】:
-
请用具体代码说明您的问题。
-
您可以将依赖项实例化移动到 工厂类 并将其作为 构造函数参数 传递给您的测试代码。工厂类本身会太简单而无法失败,因此不需要进行测试。
-
@davidxxx 示例代码插入
-
@TimothyTruckle 你是否建议这样做:try (FileInputStream fis = getCreatedFromFactory(file)) ??
标签: java unit-testing junit mocking mockito