나는 쌍을 이루는 void 메소드의 클래스가 있습니다. 각 메소드에는 동일한 조작을 수행하지만 다른 방식으로 수행해야하는 동일한 메소드가 있습니다. 예를 들어 :두 개의 void 메소드가 동일하게 수행하는 경우 Java 테스트
public void example1_1(){
Integer i = new Integer(1);
}
public void example1_2(){
Integer i = Integer.valueOf(11);
}
또는
public void example2_1(){
String result = "hello";
for (int i = 0; i < 10; i++) {
result += result;
}
}
public void example2_2(){
StringBuffer result = new StringBuffer("hello");
for(int i = 0; i < 10; i++) {
result += result;
}
}
가 어떻게 방법이 실제로가 쌍에서 같은 작업을 수행하는지 테스트 할 수 있습니까?
두 개의 프로그램이 동일한 함수를 계산하면 이론적 인 관점에서 결정할 수 없습니다 (일반적으로). 그리고 예제 함수는 시간을 낭비하는 것보다 아무것도하지 않습니다. 반환 된 결과 또는 다른 부작용이 없습니다. – Albjenow
당신은 어떤 방법으로 수행되었는지 추적 할 수 없으며 결과가 없으므로 다른 방법과 유사합니다. 두 가지 방법 모두의 "결과"는 어디에도 저장되지 않으므로 실제로 수행되었다는 것을 예측할 수 없습니다. 컴파일러는 바이트 코드로부터 멀리 던질 수도 있습니다. –