java - 测试 JSONProcessingException

标签 java json unit-testing mockito

我正在尝试使用 JMockito 测试以下代码。

代码

@RunWith(MockitoJUnitRunner.class)
public class StepFunctionClientTest {

    private static final String TEST_STATE_MACHINE_ARN = "testStateMachineArn";
    private static final String TEST_EXECUTION_ARN = "testExecutionArn";
    private ObjectNode additionalData;
    private ObjectMapper objectMapper;

    @Mock AWSStepFunctions mockAWSStepFunctions;
    private StepFunctionClient stepFunctionClient;

    @Before
    public void setUp() throws Exception {
        stepFunctionClient = new StepFunctionClient(mockAWSStepFunctions, TEST_STATE_MACHINE_ARN);
        additionalData = TestData.getObjectNode(TestData.ADDITIONAL_DATA);
        objectMapper = new ObjectMapper();
    }

    @Test(expected=InternalServiceException.class)
    public void test() throws Exception {
        StartExecutionResult result = new StartExecutionResult();
        result.setExecutionArn(TEST_EXECUTION_ARN);

        when(mockAWSStepFunctions.startExecution(any())).thenThrow(new JsonProcessingException("Error"){});

        stepFunctionClient.startExecution(
                TEST_ORDER_ID,
                TEST_PAYMENT_STATUS,
                null,
                false);
    }
}

错误

[junit] Testcase: test(com.project.orderservice.client.StepFunctionClientTest):       Caused an ERROR
[junit] Unexpected exception, expected<com.project.commons.exceptions.InternalServiceException> but was<org.mockito.exceptions.base.MockitoException>
[junit] java.lang.Exception: Unexpected exception, expected<com.project.commons.exceptions.InternalServiceException> but was<org.mockito.exceptions.base.MockitoException>
[junit]     at org.mockito.internal.runners.DefaultInternalRunner$1.run(Unknown Source)
[junit]     at org.mockito.internal.runners.DefaultInternalRunner.run(Unknown Source)
[junit]     at org.mockito.internal.runners.StrictRunner.run(Unknown Source)
[junit]     at org.mockito.junit.MockitoJUnitRunner.run(Unknown Source)
[junit] Caused by: org.mockito.exceptions.base.MockitoException: 
[junit] Checked exception is invalid for this method!
[junit] Invalid: com.project.orderservice.client.StepFunctionClientTest$1: Error
[junit]     at com.project.orderservice.client.StepFunctionClientTest.test(StepFunctionClientTest.java:157)

我在这里缺少什么?

最佳答案

JsonProcessingException是一个受检查的异常,这意味着如果您想抛出它,该方法必须将其包含在其签名中。否则你会得到上面的错误:

Checked exception is invalid for this method!

您只能抛出此处列出的已检查异常 -> StartExecutionRequest .

或者一个RuntimeException

关于java - 测试 JSONProcessingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48230893/

相关文章:

json - 无法在 gqlgen 中生成标量 JSON

node.js - 使用 Visual Studio 2013 调试 Mocha 测试

asp.net-mvc - 为 ASP.Net MVC 设置测试的最佳实践是什么?使用/处理/等什么?

asp.net-mvc-3 - 单元测试因 Sessions 而失败

java - 匹配(基本)函数声明

java - WatchService 在集成测试中不起作用

android - 如何使用 Retrofit 2.0 解析带有动态键的 json?

jquery - 使用 jQuery 将 JSON 数组转换为 HTML 项目符号列表

java - 如何配置 JBOSS 以在 Web 应用程序中使用 xml 库?

java - 如何通过 Java Web 服务模拟 IMS 分段处理