Assert语句Assert.assertSame失败

时间:2014-06-12 15:50:28

标签: java junit intellij-idea assert

我在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中,它提供了“点击查看差异”的链接,但是当我点击它时,它显示“内容相同”。

1 个答案:

答案 0 :(得分:9)

assertSame(Object, Object)检查两个参数是否都引用同一个对象。

执行装箱转换以将200转换为有效的引用类型对象。要做到这一点,它确实

Integer.valueOf(200);

Integer.valueOf(code);

返回不引用同一对象的新对象引用。