首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MockwebServer不模拟http调用

MockwebServer不模拟http调用
EN

Stack Overflow用户
提问于 2018-11-22 13:30:22
回答 1查看 7.9K关注 0票数 7

我最近发现了MockWebServer库,我尝试在Junit和mockito的项目中使用它。

我有这样的测试方法:

代码语言:javascript
复制
       @Test
       public void testGetUsers() throws Exception {
            MockWebServer server = new MockWebServer();
            server.start();
            MockResponse mockedResponse = new MockResponse();
            mockedResponse.setResponseCode(200);
            mockedResponse.setBody("{}");
            server.enqueue(mockedResponse);
            server.url("https://my-domain/user/api/users");
            JSONObject result = UserService.getUsers();
            assertNotNull(result);
            server.shutdown();
       }

我的方法getUsers()执行Http调用:

代码语言:javascript
复制
public JSONObject getUsers() {
     String urlUser = "https://my-domain/user/api/users";
     Request request = new Request.Builder()
                .url(urlUser)
                .build();

     Response response = 
     MyConf.getOkHttpClient().newCall(request).execute();
     .... //process users and return a json Object
}

这是我的等级配置:

代码语言:javascript
复制
compile('com.squareup.okhttp3:okhttp:3.4.2')
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.1.0'
testImplementation 'com.squareup.okhttp3:mockwebserver:3.12.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.1.0'
testCompile 'org.junit.jupiter:junit-jupiter-params:5.1.0'
testCompile group: 'org.mockito', name: 'mockito-all', version: '1.8.4'
testCompile group: 'com.squareup.okhttp3', name: 'mockwebserver', version: '3.12.0'

当我启动单元测试时,http调用不会被Mockwebserver所模拟。我从真正的服务器获得响应,而不是模拟的响应("{}")。

你能帮我吗?提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-22 13:49:36

我猜它不像你期望的那样起作用。在git自述文件中,他们给出了以下代码示例:

代码语言:javascript
复制
  // Ask the server for its URL. You'll need this to make HTTP requests.
  HttpUrl baseUrl = server.url("/v1/chat/");

因此,您将通过模拟服务器获得一个URL,而不是覆盖任何现有的URL。

我只是用以下源代码对此进行了双重检查:

代码语言:javascript
复制
MockWebServer server = new MockWebServer();
server.start();
HttpUrl baseUrl = server.url("/v1/chat/");

这为baseUrl提供了一个新地址:http://127.0.0.1:8125/v1/chat/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53432101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档