단정문 assertEquals와 assertSame의 차이점

■ assertEquals는 두 값이 같은지를 비교하는 단정문이고, assertSame은 두 객체가 동일한 객체인지 주소값으로 비교하는 단정문이다. assertSame은 싱글톤(Singleton) 패턴으로 만들어진 객체를 비교확인하기도 하고 리스트의 clone메소드로 복사된 객체를 비교할 수도 있다.

// 두 값이 같으면 테스트 성공
assertEquals([message], expected, actual);

// delta는 float, double등의 값을 비교할 때의 허용오차값
// 허용오차 범위내에 있으면 테스트 성공
assertEquals([message], expected, actual, delta);

// 두 객체의 주소값이 같으면 테스트 성공
assertSame([message], expected, actual); 

// 두 객체의 주소값이 다르면 테스트는 성공
assertNotSame([message], expected, actual); 

 

■ assertEquals 예제

assertEquals(12, 12);  // success
assertEquals(12, 21);  // failure
assertEquals("aa", "aaa");  // failure

 

■ assertSame 예제

assertSame("aa", "aa");  // success
assertSame(12, 12);  // success

Integer int1 = new Integer("12");
Integer int2 = new Integer("12");
assertSame(int1, int1);  // success
assertSame(int1, int2);  // failure
assertNotSame(int1, int2);  // success

ArrayList<String> list1 = new ArrayList<String>();
ArrayList<String> list2 = list1.clone();
assertSame(list1, list1);  // success
assertSame(list1, list2);  // failure
assertNotSame(list1, list2);  // success

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다