我正在编写JUnit测试,我有一个这样的行多次使用
Assert.assertEquals("Size of list is incorrect", 1, list.size());
在某些地方,这行很好但是Java转换失败了。
方法签名是
void org.junit.Assert.assertEquals(String message,long expected,long 实际)
在某些时候它会失败,因为list.size()
是int=1
但过去assertEquals(String message, long expected, long actual)
就是long=2
并且断言失败。
使用像Integer.valueOf()
或Long.valueOf
这样的显式转换解决了这个问题,但为什么JVM正在改变第60行的值(而第30行则是有效的)?
答案 0 :(得分:1)
在与队友进行一些调试之后,似乎eclipse在某些时候失败了,反编译了这个类,代码使用了之前复制/粘贴的其他变量。