WireMock 和 Mockito 区别
WireMock和Mockito都是测试工具,这两种工具在实际应用程序中都非常适用于单元和集成测试。开发人员必须知道这两种测试工具之间的区别。因此,在本文中,我们将讨论这两种非常流行的测试工具之间的主要区别。
WireMock
WireMock是一个用于模拟基于http的api的工具,它可以在单元测试、桌面或测试环境中运行。我们也可以说它是基于http的api的模拟器,被认为是服务虚拟化工具或模拟服务器。当您依赖于一个API时,它使您能够保持高效率
- 不存在或
- 不完整或
- 访问成本高
它支持边缘案例和故障模式的测试。它非常快,因此大大减少了构建时间。简单地说,Wiremock是用于集成测试的模拟设置。它主要用于开发期间,更重要的是在集成测试期间,当系统或服务与一个或多个外部或内部依赖/服务对话时。
Mockito
类似地,Mockito是一个用于Java应用程序单元测试的开源测试框架。它在开发可测试应用程序中起着至关重要的作用。Mockito用于模拟接口,以便可以将虚拟功能添加到可以在单元测试中使用的模拟接口中。单元测试是软件测试的一种类型,其中对软件的各个组件进行测试。使用Mockito框架的主要目的是通过模拟外部依赖项并在测试代码中使用它们来简化测试的开发。因此,Mockito提供了更简单的测试代码,更容易理解、更易于阅读和修改。Mockito还可以与JUnit和TestNG等其他测试框架一起使用。
为什么我们应该使用WireMock而不是Mockito
Wiremock为基于http的api提供了一个模拟器,而Mockito提供了方法/对象的模拟实现。如果我们使用Mockito来模拟基于HTTP的方法,这意味着我们试图返回对象/响应,而不测试任何调用REST服务的代码,获取HTTP响应,并反序列化相同的代码。如果我们使用Wiremock,我们将能够接近真实地进行测试,因为它将测试REST调用的调用以及响应的反序列化。
WireMock和Mockito的区别
WireMock | Mockito |
---|---|
在WireMock中,网络服务器就像真正的API一样工作。 | 在Mockito中,没有web服务器。 |
这是一个真正的HTTP调用。 | 在Mockito中没有HTTP调用。 |
它位于应用程序代码之外。 | 它是应用程序代码的一部分。 |
它可以模拟网络调用。 | 在Mockito,它不能。 |
它是语言不可知论者。这意味着无论你使用Java、Python还是Groovy语言,如果它是基于rest的响应,你都可以使用WireMock。 | 但是在Mockito的例子中,它是一个特定于语言的mock库。例如,在Java编程中,mock库被命名为Mockito,对于其他编程语言,它有一个不同的名称。 |