当前位置: 首页 > 知识库问答 >
问题:

文件readAllBytes的模拟和抛出错误

咸玄天
2023-03-14

要模拟文件。readAllBytes先抛出错误,然后抛出字节[]。。

getQueryTextFromFile是一个私有方法,从另一个方法调用以获取字节[]

private byte[] getQueryTextFromFile() {
        try {
            File file = new File("./");
            byte[] refreshTableQueryBytes = Files
                    .readAllBytes(Paths.get(file.getAbsolutePath() +"src/resources/queryFile"));
            return refreshTableQueryBytes;
        } catch (IOException e) {
            logger.error("Exception while fetching query details");
        }
        return null;
    }

如何在此处模拟以使用Mockito框架引发IOException

共有1个答案

朱炳
2023-03-14

您可以通过Mockito模拟文件。模拟静态。您应该将mockito内联依赖项添加到pom中。xml:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-inline</artifactId>
    <version>3.8.0</version>
    <scope>test</scope>
</dependency>

您可以使用Mockito。通过以下方式模拟静态:

try (MockedStatic<Files> mockedFiles = Mockito.mockStatic(Files.class)) {
    mockedFiles.when(() -> Files.readAllBytes(any())).thenThrow(IOException.class);
    // ...
}

请注意,当您使用mockedStatic时,最好使用“使用资源进行尝试”模式,并像上面那样在此范围内进行测试。

阅读有关mockStatic的更多信息:https://www.baeldung.com/mockito-mock-static-methods

 类似资料:
  • 我正在使用Sprock和Spring,当我嘲弄我的一个组件类时,我得到了错误。 > CGLIB-NODEP:3.2.0 CGLIB:3.2.0 Spock-Core:1.0-groovy-2.4 Spring-测试:4.1.4.释放 java.lang.NoClassDefoundError:无法初始化类org.spockframework.mock.runtime.proxybasedmockf

  • 问题内容: 我正在尝试嘲笑课堂。当我运行以下代码时,Mockito会引发异常: 堆栈跟踪是无限重复的以下几行: 我在这里做错了什么? 问题答案: PS!您还可以模拟对getSecurityManager()方法的静态方法调用。 模拟静态方法请参见maunal,网址为http://code.google.com/p/powermock/wiki/MockitoUsage 在类级别添加@Prepare

  • 我有自定义的Log4j2 appender: 我想模拟:

  • 问题内容: 我在junit测试中使用了模仿。如何使异常发生,然后断言其具有(通用伪代码) 问题答案: __仅 Mockito 并不是处理异常的最佳解决方案, 请将Mockito 与 Catch-Exception结合使用 Mockito + 捕获异常 + AssertJ 样例代码 Mockito + Catch-Exception + Assertj完整样本 依存关系 eu.codearte.ca

  • JMeter HTTP请求-404错误 当我运行jmx文件时,其中一个HTTP请求文件会抛出404错误。屏幕截图如上图所示。 有人能为这个问题提出一些解决方案吗?