如何在 try-with-resource 块中模拟变量
How to mock variables in try-with-resource blocks
我目前正在使用 junit-4.12
和 mockito-1.10
。我正在尝试将模拟注入 try-with-resource 块,例如
try (InputStream inputStream = new FileInputStream("inputFile.txt") {
...
}
有什么方法可以为 inputStream
注入 mock 吗?我试过在 try
块之外声明 inputStream
如下:
InputStream inputStream;
try (inputStream = new FileInputStream("inputFile.txt") {
...
}
然而,Java 不喜欢这样并抛出错误。
如有必要,我愿意使用任何其他库,我们将不胜感激!
谢谢。
应该这样做:
import static org.powermock.api.mockito.PowerMockito.whenNew;
// ...
InputStream inputStreamMock = mock(InputStream.class);
whenNew(FileInputStream.class).withArguments("inputFile.txt").thenReturn(inputStreamMock);
我目前正在使用 junit-4.12
和 mockito-1.10
。我正在尝试将模拟注入 try-with-resource 块,例如
try (InputStream inputStream = new FileInputStream("inputFile.txt") {
...
}
有什么方法可以为 inputStream
注入 mock 吗?我试过在 try
块之外声明 inputStream
如下:
InputStream inputStream;
try (inputStream = new FileInputStream("inputFile.txt") {
...
}
然而,Java 不喜欢这样并抛出错误。
如有必要,我愿意使用任何其他库,我们将不胜感激!
谢谢。
应该这样做:
import static org.powermock.api.mockito.PowerMockito.whenNew;
// ...
InputStream inputStreamMock = mock(InputStream.class);
whenNew(FileInputStream.class).withArguments("inputFile.txt").thenReturn(inputStreamMock);