jlars62
jlars62

Reputation: 7373

Assert statement Assert.assertSame is failing

I have the following code in a junit test case. The first Assert passes and the second one fails.

final int code = webResponse.getResponseCode();
Assert.assertTrue(200 == code);  //passes
Assert.assertSame(200, code);    //fails

Why does the second one fail? webResponse is type WebResponse and all implementations of getResponseCode return an int.

I am running the code within a junit test and the second assert fails in both Intellij and Eclipse IDE. Also, in Intellij, it provides a link to "Click to see difference" but when I click that, it says "Contents are identical".

Upvotes: 5

Views: 558

Answers (1)

Sotirios Delimanolis
Sotirios Delimanolis

Reputation: 280112

assertSame(Object, Object) checks if both arguments refer to the same object.

It performs boxing conversion to convert 200 to a valid reference type object. To do this, it does

Integer.valueOf(200);

and

Integer.valueOf(code);

which return new object references which do not reference the same object.

Upvotes: 10

Related Questions