我書面方式JUnit測試,我有這樣一行多次使用的Java INT = 1轉變爲長= 2
Assert.assertEquals("Size of list is incorrect", 1, list.size());
由於一些地方,這條線工作正常,但一些在Java轉換失敗。
方法簽名
無效org.junit.Assert.assertEquals(字符串消息,期待已久,長 實際)
在某些時候,它失敗,因爲list.size()
是一個int=1
但一旦過去到assertEquals(String message, long expected, long actual)
已成爲long=2
並斷言失敗。
像Integer.valueOf()
或Long.valueOf
這樣的顯式轉換可以解決這個問題,但爲什麼JVM正在更改第60行的值(而在第30行,它的工作原理如此)?
沒有辦法'(int)1'正在變成'(long)2L'如果它看起來是'2'而不是'long',那麼'2'就是'int'。 – 2014-09-01 12:52:31
「第60行的值(在第30行時,它作爲有人蔘與)」你在談論哪條線。你在這兩條線之間做了什麼,這可能是問題的原因。我建議你使用調試器來更好地理解你的程序在做什麼。 – 2014-09-01 12:54:28