Brahim.Bou:
私は最近、MockWebServerライブラリを発見し、私はJUnitのとmockitoと私のプロジェクトでそれを使用するようにしてください。
私は、この試験方法があります:
@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呼び出しを行います。
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
}
そして、ここに私のGradleの構成は以下のとおりです。
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によって嘲笑されていません。私は私の実サーバからの応答はなく嘲笑応答(「{}」)を取得します。
あなたはそれで私を助けることができますか?前もって感謝します
maio290:
私の推測では、あなたがそれを期待通りに動作しないということです。Gitのreadmeファイルでは、彼らは次のコード例を与えます:
// Ask the server for its URL. You'll need this to make HTTP requests.
HttpUrl baseUrl = server.url("/v1/chat/");
あなたはモックサーバでURLを取得しているので、あなたは、既存のURLのない上書き、呼び出す必要があります。
私は二重の次のソースコードでこれをチェックします:
MockWebServer server = new MockWebServer();
server.start();
HttpUrl baseUrl = server.url("/v1/chat/");
これがために与えられるbaseUrl
新しいアドレス:http://127.0.0.1:8125/v1/chat/