簡體   English   中英

Java單元測試,從斷言中獲取更多數據

[英]Java unit testing, get more data from assertion in loop

我正在對返回數百種產品的網絡服務進行單元測試。 在今天的測試中,其中一種產品缺少領域。

因為一種產品缺少一個字段,所以我的斷言失敗了(成功找到錯誤,所以這取決於您如何看待它),但是我想知道的是哪一種產品出了問題。

這是我的斷言代碼:

for (Catalog catalog : mCatalogs.catalogs) {
    if (catalog.products != null && !catalog.products.isEmpty())
    {
        for (Product product : catalog.products) {
            assertNotNull(product.sku);
            assertNotNull(product.title);
            assertNotNull(product.localeName);
            assertNotNull(product.description);
            assertNotNull(product.fullImage);
            assertNotNull(product.statusCode);
        }
    }
}

其中一種產品沒有字段localName

有沒有一種方法可以將類似以下內容的字符串輸出到命令行

"product " + product.title + " failed"

如果是這樣,怎么樣?

謝謝!

每個assert *方法的版本都將String作為第一個參數,即斷言失敗時顯示的字符串。

assertNotNull("product " + product.title + " failed",product.localeName);

通常,在JUnit中進行斷言的調用會重載,以便在發生故障時可以選擇創建錯誤消息。 在這種情況下,調用assertNotNull 2個參數的assertNotNull重載 ,第一個是錯誤消息。

assertNotNull("product " + product.title + " failed", product.localeName);

您可以使用assert運算符執行以下操作:

assert product.localeName != null : "product must have a local name";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM