我对编写如此详细的 Junit 还很陌生。
方法 返回布尔值真/假 接受两个相同非原始类型的参数。
此方法通过使用 if else 条件比较相似类型的两个实例来进行大量验证。 并且在迭代基于集合的 params 字段时进行更多验证。
我尝试编写基本场景,但不清楚如何为基础 if_conditons 执行此操作。尤其是在模拟数据方面。
我尝试并意识到的:在 AssertClass 下有很多方法可以用来验证,但是对于这个基于大量条件返回布尔值的方法,我该怎么写?我是否必须在 @Test 注释方法下为每个条件编写单独的断言? 下面是我的代码:
public boolean checkEligblity(A newversion, A currentversion) {
if (currentversion.getPurchaseOrders().isEmpty())
return true;
if (currentversion.getReceiptNotice() != newversion.getReceiptNotice()
|| currentversion.getSizeType() != newversion.getSizeType()
|| currentversion.getNumInPrices() != newversion.getNumInPrices())
return true;
boolean storeM = newversion.getReceiptNotice() == PASSED;
if (currentversion.getOrderInfo() != newversion.getOrderInfo()) {
if (storeM || containsCustomerString(currentversion.getOrderInfo())
|| containsCustomerString(newversion.getOrderInfo()))
return true;
}
List<PurchaseOrders> newVersionPurchaseOrders = newversion.getPurchaseOrders();
List<PurchaseOrders> currentVersionPurchaseOrders = currentversion.getPurchaseOrders();
for (Iterator<PurchaseOrders> newPOIterator = newVersionPurchaseOrders.iterator(); newPOIterator.hasNext();) {
PurchaseOrders newPO = newPOIterator.next();
for (Iterator<PurchaseOrders> currentPOIterator = currentVersionPurchaseOrders.iterator(); currentPOIterator
.hasNext();) {
PurchaseOrders currentPO = currentPOIterator.next();
if (newPO.getSku() == currentPO.getSku()
&& newPO.getSkuId() == currentPO.getSkuId()
&& newPO.getOrgin() == currentPO.getOrgin()
&& newPO.getTarget() == currentPO.getTarget()
&& newPO.getShippingDate()== currentPO.getDepratureDate()) {
if (currentPO.getStatusCode().equals(newPO.getStatusCode())
&& currentPO.getItemsInQty().equals(newPO.getItemsInQty())
&& currentPO.getVendorId().equals(newPO.getVendorId())
&& currentPO.getCodeInd().equals(newPO.getCodeInd())
&& currentPO.getPriceType().charAt(0) == newPO.getPriceType().charAt(0)) {
boolean matchingFound = true;
if (storeM && currentPO.getInbound() != newPO.getInbound()) {
matchingFound = false;
}
if (matchingFound) {
newPOIterator.remove();
currentPOIterator.remove();
break;
}
}
}
}
}
if (!newVersionPurchaseOrders.isEmpty() || !currentVersionPurchaseOrders.isEmpty()) {
return true;
}
return false;
}
private boolean containsCustomerString(String ticketingInfo) {
if (orderInfo == null)
return false;
if (orderInfo.startsWith(PASS))
return true;
return false;
}