我正在尝试使用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)
我在这里缺少什么?
答案 0 :(得分:1)
JsonProcessingException是一个经过检查的异常,这意味着如果要抛出它,该方法必须将其置于其签名中。否则你会得到上面的错误:
此方法的已检查异常无效!
您只能抛出此处列出的已检查例外 - &gt; StartExecutionRequest
或RuntimeException
。