美文网首页
Java HTTP 服务单元测试 Mock 框架: WireMo

Java HTTP 服务单元测试 Mock 框架: WireMo

作者: haitaoyao | 来源:发表于2016-02-18 20:30 被阅读2032次

Microservice 越来越多, 如何在写 unit test 的时候简单易用的 mock 依赖的 HTTP 服务?

第一种方案: Unitils

Unitils 是写 Java 单元测试的神器, 简单易用, 童叟无欺.
比如如下代码就在单元测试中成功 mock 了一个依赖的 service:

public class MyServiceTest extends UnitilsJUnit4 {
 
    private Mock<MyService> myServiceMock;
 
}

想伪造方法返回值也就一行代码的事儿:

myServiceMock.returns("a value").someMethod();

不仅仅 mock, Unitils 其他模块对 Java 的单元测试也是非常大的补充. 但如果我就是要测试 HTTP client 访问远程 server 的那段代码怎么办? 如何一行代码伪造远程 HTTP 服务?

神器: WireMock

简单实用 JUnit Rule 定义一个 Rule, 指定端口, 实用 stubFor 方法非常容易在8500端口启动了一个 HTTP Server 并且当 GET http://localhost:8500/v1/catalog/service/test_service 时返回 mock response here 字符串

    @Rule
    public WireMockRule wireMockRule = new WireMockRule(8500);

    @Before
    public void setUp() throws IOException {
        wireMockRule.resetMappings();
        stubFor(get(urlEqualTo("/v1/catalog/service/test_service"))
          .willReturn(aResponse().withBody("mock response here")));

    }

WireMock 不仅仅支持 HTTP 所有方法, 也支持 HTTPS 协议. 大赞.
-- EOF --

相关文章

  • Java HTTP 服务单元测试 Mock 框架: WireMo

    Microservice 越来越多, 如何在写 unit test 的时候简单易用的 mock 依赖的 HTTP ...

  • Mockito使用介绍

    Mockito是用于写Java的单元测试框架,在单元测试中使用Mockito来创建和模拟(Mock)假的Java对...

  • nodejs mock数据 单元测试

    nodejs 单元测试 nodejs koa 框架实现Java 中mock+junit类似的单元测试。 需要用到的...

  • PowerMock简介

      Java单元测试框架主要有JUnit和TestNG,常用的Mock框架主要有EasyMock、Mockito和...

  • Spring Boot 单元测试

    一、使用mock进行单元测试 Spring框架提供了MockMvc对象,可以在服务端完成对Controller的启...

  • 一篇文章让你了解基于Spring的测试

    针对Spring某个类及方法的单元测试,结合单元测试框架(比如JUnit)和Mock的框架(比如EasyMock)...

  • k point

    1.Mockito 简明教程基于 Java 语言的 Mock 测试框架http://www.tuicool.com...

  • JAVA-Mock测试框架简记-2017-2-7 18:38:3

    JAVA-常用Mock测试框架 EasyMock 早期比较流行的MocK测试框架 mockito EasyMock...

  • Jmokit

    # Junit+Jmokit单元测试 标签(空格分隔):java单元测试 --- > 原理:mock测试就是在测试...

  • Robolectric框架的使用

    可以参考地址: 1.Android单元测试(一):JUnit框架的使用 2.Android单元测试(二):Mock...

网友评论

      本文标题:Java HTTP 服务单元测试 Mock 框架: WireMo

      本文链接:https://www.haomeiwen.com/subject/jfnmkttx.html