我想為以下代碼撰寫mockito,但不知道如何在buildGetSubtenantsURL ,getSubtenants,getSubtenantName的方法中撰寫 -
public void addNewMap(MapDTO mapDTO){
`...............................`
String subtenantsURL = buildGetSubtenantsURL(null) 。
String subTenantsResponse = getSubtenants(subtenantsURL,iottenant)。
JSONObject subTenant = getSubtenantName(subTenantsResponse)。
checkForMultiplePagesSubtenants(subTenantsResponse, subtenantInfoMap,iottenant)。
if(subtenantInfoMap.get(mapDTO.getSubtenantName()) != null) {
mapEntity = Maps.builder().subtenant(subtenantInfoMap.get(mapDTO.getSubtenantName()).toString()).building()。
}
else {
throw new DataNotFoundException(SUBTENANT_DOESNT_EXIST)。
}
String SubtenantId = subtenantInfoMap.get(mapDTO.getSubtenantName() )。
UriComponents assetsURL = buildGetAssetsURL(iottenant,SubtenantId)。
String assetsResponse = getAssets(assetsURL, iottenant)。
String mindsphereAssetId = getAssetId(assetsResponse)。
}
String url = new StringBuilder() 。 append( mindsphereBaseURL).append( mindsphereAssetsURL).toString()。
UriComponents baseUriComponents = UriComponentsBuilder.fromHttpUrl(url).build();
JSONObject typeId = new JSONObject() 。
typeId.put(Constants.TYPEID, iottenant "."/span> assetType)。
typeId.put(Constants.SUBTENANT,SubtenantId)。
baseUriComponents = UriComponentsBuilder.fromUri(baseUriComponents.toUri())
.queryParam(Constants.FILTER, typeId.toString()).queryParam(Constants.BASIC_FIELDS_ONLY,"true") .build().encode()。
return baseUriComponents;
uj5u.com熱心網友回復:
你不能用Mockito實作這一點。為此,您需要使用Powermock(查看https://www.baeldung.com/powermock-private-method了解詳情和示例)。
盡管如此,嘲弄私有方法是一種非常糟糕的做法。通過這樣做,你將會測驗什么?這將是一個部分單元測驗(因為你甚至沒有測驗整個單元,也就是被測類)?我的建議是,你應該盡可能地避免這種做法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/325788.html
標籤:
上一篇:io.jsonwebtoken.JwtParser是多執行緒的嗎?
下一篇:如何在每次發射事件時創建一個訊息
