私は2つのクラスを持っています。最初のServiceConsumer
は、そのコンストラクタのサーバ設定を初期化する抽象クラスです。これは、RESTサービスを使用するメソッドを保護しています。Java:ユニットの使い方RESTサービスを使用する抽象クラスをテストしてください
public abstract class ServiceConsumer {
public ServiceConsumer(String configFilePath) {
initConfigSuccessful = false;
initConfiguration(configFilePath);
}
protected RestResponse executeGetRequest(String urlString) {
if (!initConfigSuccessful) {
return RestResponseFactory.createErrorResponse("Initialization error!");
}
try {
HttpClient httpClient = HttpClientBuilder.create().build();
HttpGet getRequest = new HttpGet(urlString);
byte[] authentication = Base64.getEncoder().encode((username + ":" + password).getBytes());
getRequest.setHeader("Authorization", "Basic " + new String(authentication));
HttpResponse response = httpClient.execute(getRequest);
HttpEntity entity = response.getEntity();
InputStream responseStream = entity.getContent();
String responseString = StringHelper.getFileContent(responseStream);
JsonElement responseElement = new JsonParser().parse(responseString);
int responseCode = response.getStatusLine().getStatusCode();
if (responseElement == null || responseElement.isJsonNull()) {
return RestResponseFactory.createResponse(responseCode);
} else if (responseElement.isJsonObject()) {
return RestResponseFactory.createResponse(responseCode, responseElement.getAsJsonObject());
} else if (responseElement.isJsonArray()) {
return RestResponseFactory.createResponse(responseCode, responseElement.getAsJsonArray());
}
} catch (Exception e) {
return RestResponseFactory.createErrorResponse(e);
}
return RestResponseFactory.createErrorResponse("Unexpected error occured!");
}
}
第二のクラスServiceClient
はServiceConsumer
を拡張し、方法スーパーコンストラクタとメソッドを呼び出します。
public class ServiceClient extends ServiceConsumer {
private static String configFilePath = "/server-config.json";
public ServiceClient() {
super(getConfigFilePath());
}
public RestResponse getStuffByKey(String key) {
RestResponse restResponse = executeGetRequest(getBasicUrl() + "/rest/api/2/stuff/" + key);
return restResponse;
}
}
私はユニットテストの方法をMockitoで理解できません。どんな助けもありがとうございます。
どのような操作をテストしたいですか? – maxpovver
getStuffByKeyおよび/またはexecuteGetRequestメソッド。 – SpaceJump