[英]expected: java.lang.Long<1> but was: java.lang.Integer<1>
我正在使用 JUnit 來測試一些代碼。
本節如下:
assertEquals(query.get(0).get("FEEDBACK_ID"), feedbackValues.getFeedbackId());
導致以下錯誤:
java.lang.AssertionError: expected: java.lang.Long<1> but was: java.lang.Integer<1>
哪個好...
我的問題是,如何轉換此對象:
query.get(0).get("FEEDBACK_ID")
變成整數以避免測試失敗? 我知道將右側的項目轉換為 long 會更容易,但我不想這樣做。
您想要實現的目標是錯誤的,因此唯一有效的答案是:不要這樣做。 基本上,您正在嘗試向您的方法添加行為以匹配您的測試。 你在這種情況下測試什么? 當然不是方法。 即使它發生的可能性很小,轉換為int
也可能導致整數溢出並搞砸你的測試。
測試不應向測試方法的輸出添加額外的轉換,否則誰來測試這些額外的轉換? 為什么 API 不返回您要操作的類型?
您的方法應該返回相同的類型,或者您應該將int
結果提升為long
,因為它是安全的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.