【问题标题】:How to mock variables in try-with-resource blocks [duplicate]如何在try-with-resource块中模拟变量[重复]
【发布时间】:2016-09-25 01:16:21
【问题描述】:

我目前正在使用junit-4.12mockito-1.10。我正在尝试将模拟注入到 try-with-resource 块中,例如

try (InputStream inputStream = new FileInputStream("inputFile.txt") {
    ...
}

有没有办法可以为inputStream 注入模拟?我尝试在try 块之外声明inputStream,如下所示:

InputStream inputStream;
try (inputStream = new FileInputStream("inputFile.txt") {
    ...
}

但是,Java 不喜欢这样并抛出错误。

如果需要,我愿意使用任何其他库,我们将不胜感激!

谢谢。

【问题讨论】:

    标签: java unit-testing junit mocking mockito


    【解决方案1】:

    应该这样做:

    使用PowerMockito

    import static org.powermock.api.mockito.PowerMockito.whenNew;
    
     // ...
    InputStream inputStreamMock = mock(InputStream.class);
    whenNew(FileInputStream.class).withArguments("inputFile.txt").thenReturn(inputStreamMock);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 2014-01-06
      • 2013-05-11
      • 2016-03-12
      • 1970-01-01
      • 2015-08-19
      相关资源
      最近更新 更多