객체에서 동일한 구현을 테스트하는 모범 사례 또는 일반적인 방법이 있는지 알고 싶습니다. 재정의 된 테스트 방법을 의미합니다.
public boolean equals(Object o)
나는 이와 같은 논리를 사용했습니다. (참을 얻으려면 숫자와 이름이 동일해야한다고 가정)
Dog d1 = new Dog(1,"Alvin");
Dog d2 = new Dog(2,"Alvin");
Assert.assertFalse(d1.equals(null));
Assert.assertFalse(d1.equals(d2));
d2.setId(1);
d2.setName("Kelvin");
Assert.assertFalse(d1.equals(d2));
d2.setName("Alvin");
Assert.assertTrue(d1.equals(d2));
Assert.assertTrue(d1.equals(d1));
하지만 필드가 많을 때이 작업은 매우 크고 지루합니다. 그래서 제 질문은 프레임 워크, 도구, 옵션,이 작업을 더 쉽게 만들고 메서드가 올바르게 재정의되었음을 증명할 수있는 것이 있는지 여부입니다. 감사.
메서드를 재정의하는 것은 필요한 논리에 따라 다르지만 테스트 케이스 생성도 있으므로 테스트 케이스에서 큰 코드를 피하는 방법을 테스트하는 표준 방법을 찾고 있습니다. .
중복 질문의 링크를 보면 @ user598656 답변을 읽고 MeanBeans (Automated java bean tester)를 사용할 것을 제안합니다.
설명서를 읽으면서이 기능을 찾았습니다.
5.2.7. 속성! 의미! 테스트! 알고리즘! 속성 유의성 테스트 알고리즘은 다음과 같습니다.
for each property in public getter/setter method pairs do
create instance of class under test, object x
create instance of class under test, object y
change property of y to contain a different value
if property is insignificant then
assert x.equals(y)
else
assert x.equals(y) is false
end if
end for
제가 찾던 것이 바로 마지막 답이지만 제 생각에는 이것이 제 요구에 맞습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다