我在junit
测试用例中有以下代码。第一个Assert通过,第二个失败。
final int code = webResponse.getResponseCode();
Assert.assertTrue(200 == code); //passes
Assert.assertSame(200, code); //fails
为什么第二个失败? webResponse是类型WebResponse,getResponseCode的所有实现都返回一个int。
我在junit测试中运行代码,第二个断言在Intellij和Eclipse IDE中都失败了。此外,在Intellij中,它提供了“点击查看差异”的链接,但是当我点击它时,它显示“内容相同”。
答案 0 :(得分:9)
assertSame(Object, Object)
检查两个参数是否都引用同一个对象。
执行装箱转换以将200
转换为有效的引用类型对象。要做到这一点,它确实
Integer.valueOf(200);
和
Integer.valueOf(code);
返回不引用同一对象的新对象引用。