더 복잡한 방법에 대한 단위 테스트를 배우려고합니다. 배열을 검색하고 "대상"의 색인이 포함 된 다른 배열을 반환하는 선형 검색 방법이 있습니다. 이 방법에 대한 테스트를 작성하려면 어떻게해야합니까? 여기 아래의 방법이 있습니다.단위 테스트 선형 검색 방법
public static <T extends Comparable> int[] linearSearch3 (T[] data, T
target)
int count = 0;
int index = 0;
int[] indices = new int[data.length];
for (int i = 0; i < data.length;i++){
if (data[i] == null) break;
if (data[i].compareTo(target) == 0){
indices[count] = i;
count++;
}
}
Arrays.copyOf(indices, count);
int[] copy = Arrays.copyOf(indices,count);
if(count != 0){
return copy;
}
else
return null;
여기에 제가 지금까지 테스트 해본 방법이 있습니다. 두 배열은 내 테스트 클래스의 필드입니다. intArray는 검색중인 배열입니다. 그리고 newArray 배열 반환되고 싶어? 그러나, 나는이 일을 정확하게하려고하는지조차 모르겠다. 두 번째 줄에 호환되지 않는 유형 오류가 발생했습니다. "타입 변수 T의 인스턴스가 존재하지 않으므로 int []가 T가 유형 변수 인 Integer를 따릅니다."
private final Integer[] intArray = {2, 5, 6, 8, 12, 17, 3, 45, 29, 88, 76, 54,
1, 12, 5, 41, 12, 99};
private final Integer[] newArray = {2};
@Test
public <T extends Comparable> void testLinearSearch3() {
System.out.println("Testing LinearSearch3");
Integer result = Searching.linearSearch3(intArray,(Integer)2);
어떤 도움을 주시면 감사하겠습니다. 고맙습니다. newArray 2의 인덱스를 포함하도록되어있는 경우
루프 앞에 길이 어설 션을 추가하고 assertEquals를 피드하는 것이 좋습니다. 결과 [i]와 newArray [i]가 모두 같아서 Objects # equal 인터페이스를 사용할 수 있습니다. – Igor