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
사이의 값은 미리 저장된 값을 이용하기 때문에 새로운 객체를 생성하지 않고 사용하므로 참으로 판명되는 것이다.
반응형
'개발노트 > JAVA' 카테고리의 다른 글
slf4j & logback org.slf4j 찾지 못할때 (0) | 2017.03.14 |
---|---|
PMD - 코드 분석 도구 룰셋에 대한 설명 : Java Code Inspection , Rule set (0) | 2016.10.31 |
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl 오류 (0) | 2013.05.22 |
템플릿 엔진 프리마커 알아두면 좋은 팁 : Template Engine Freemarker (0) | 2013.02.05 |