为返回布尔值并接受两个非原始类型参数的方法编写junit测试

时间:2021-06-23 17:10:48

标签: if-statement junit multiple-conditions

我对编写如此详细的 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;
}

0 个答案:

没有答案