java - 为什么我们应该使用 wiremock 而不是 Mockito

标签 java unit-testing junit mockito wiremock

我有 Restclient 类,只要在 Restclient 对象上调用 GET 方法,它就会对 URL 进行 rest 调用。我背后有一个正确的逻辑。

现在考虑一个案例,而不是使用 wiremock,我使用 Mockito 模拟 Restclient 对象上的方法 GET 以返回适当的响应。

这是否有缺点,例如主模块涵盖的代码量或两者同样好?

最佳答案

Wiremock 为基于 HTTP 的 API 提供模拟器,而 Mockito 提供方法/对象的模拟实现。

If we are using Mockito to mock HTTP-based method, it means we are trying to return the object/response without testing any code to invoke REST service, getting HTTP response and deserializing the same.

如果我们使用 Wiremock,我们将能够进行接近现实的测试,因为它将测试 REST 调用的调用以及响应的反序列化。

https://www.linkedin.com/pulse/what-difference-between-stub-mock-virtual-service-wojciech-bulaty/是一篇值得阅读的好文章,当然不是我写的:-)

关于java - 为什么我们应该使用 wiremock 而不是 Mockito,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50726017/

相关文章:

c# - 为什么我要模拟的属性需要是虚拟的?

unit-testing - 将常量添加到 PHPUnit 中的模拟

java - 如何使用 Spring 的 RestTemplate 来 POST 一个字符串数组

java - 第二次显示 ViewPager 时出现 NullPointerException

c - 对包含大量宏的程序进行单元测试

java - Java测试失败,因为NoSuchMethodError

java - Assert.assertAllValuesInArrayAreEqual - 使用junit在java中进行单元测试,有没有这样的方法?

java - 如何在 Junit PowerMockito 中使用 System.getenv

java - 您可以通过中心而不是左上角来绑定(bind) JComponent 吗?

java - Java 中的管道或交换输入/输出流