Mic*_*ael 5 java junit mockito stripe-payments
我正在尝试测试一个进行 Stripe api 调用的函数Plan.retrieve("my_plan_id")。我使用 junit 作为我的测试库,使用mockito 作为我的模拟库。这里的问题是这Plan.retrieve()是一个静态方法,而mockito不支持模拟静态方法。
我试过Plan像这样模拟班级。
Plan plan = new Plan();
plan.setId("my_plan_id");
Plan mockedPlan = mock(Plan.class);
when(mockedPlan.retrieve("my_plan_id")).thenReturn(plan);
assertEquals(plan.getId(), myTestedFunction().getId());
Run Code Online (Sandbox Code Playgroud)
这只会导致 Stripe 身份验证异常,因为我从未向 Stripe 提供 API 密钥。
在 java 中模拟 Stripe api 调用进行测试的正确实现是什么?我似乎找不到任何这方面的信息。
我已经知道 PowerMock,我一直在寻找涉及使用 Mockito 的解决方案。Dawood ibn Kareem 几乎回答了我的问题。如果我可以将其标记为已接受的答案,我会的。我承认这是一个非常明显的答案,但出于某种原因我没有想到。
我也不明白为什么人们对我的问题投反对票,这是一个坏问题吗?
小智 0
Mockito 不支持模拟静态方法,您可以使用 PowerMock 来实现该任务。具体来说,您应该查看:https://github.com/powermock/powermock/wiki/Mockito#mocking-static-method
此线程中已经回答了类似的问题:Mocking static method with Mockito
| 归档时间: |
|
| 查看次数: |
2798 次 |
| 最近记录: |