我在junit测试用例中有以下代码。第一个断言通过,第二个断言失败。
final int code = webResponse.getResponseCode();
Assert.assertTrue(200 == code); //passes
Assert.assertSame(200, code); //fails为什么第二个失败了?webResponse是WebResponse类型,getResponseCode的所有实现都返回一个int。
我正在junit测试中运行代码,而在Intellij和Eclipse中,第二个断言都失败了。另外,在Intellij中,它提供了一个指向“单击以查看差异”的链接,但当我单击该链接时,它会说“内容是相同的”。
发布于 2014-06-12 15:52:17
assertSame(Object, Object)检查两个参数是否引用同一个对象。
它执行装箱转换,将200转换为有效的引用类型对象。要做到这一点,就需要
Integer.valueOf(200);和
Integer.valueOf(code);返回不引用同一对象的新对象引用。
https://stackoverflow.com/questions/24188704
复制相似问题