> Hello World !!!

     

@syaku

JUnit - assertSame : 단위테스트

JUnit - assertSame : 단위테스트

assertSame 는 객체가 같은지 비교하는 가정문이다. 

Assert.assertSame(1000, 1000); // false
Assert.assertSame(Integer.valueOf(1000), Integer.valueOf(1000)); // false
Assert.assertSame(new Integer(1000), new Integer(1000)); // false

위 예제를 보면 값은 같은 데 모두 거짓으로 판명되는 것을 확인할 수 있다.

assertSame 은 참조형(Reference Type)인 경우에만 사용해야 한다. 만약 기본형(Primitive Type)을 비교해야 한다면 값을 비교하는 가정문 assertEquals 을 사용해야 한다.

assertSame(Object arg, Object arg2) 의 파라메터 형은 Object 이다. 그래서 autoboxing 되므로 새로운 객체가 생성되어 같은 값이라도 hashCode 가 다르므로 거짓으로 판명되는 것이다.

Assert.assertSame(127, 127); // true

하지만 위의 예제는 참으로 판명된다. 이것은 자바에서  -128 ~ 127 사이의 값은 미리 저장된 값을 이용하기 때문에 새로운 객체를 생성하지 않고 사용하므로 참으로 판명되는 것이다.



posted syaku blog

Syaku Blog by Seok Kyun. Choi. 최석균.

http://syaku.tistory.com