Java로 데이터 구조를 연구 중입니다. 가방 구현을 만들어야합니다. String [] 배열을 사용하여이를 수행하고 JUnit에서 결과를 테스트합니다.문자열 배열 String []에 요소 추가 및 Junit의 결과 테스트
내 클래스입니다 :
public class BagImplementation {
private int num = 4;
private String[] thisBag = new String[num];
private int count =0;
public int getCount(){
return count;
}
public int getCurrentSize() {
return num;
}
public boolean add(String newEntry) {
if(getCurrentSize() >= count){
thisBag[count] = newEntry;
count++;
return true;
}else{
count++;
System.out.println("reaching");
return false;
}
}
}
내 JUnit 테스트 클래스는 다음과 같습니다
import static org.junit.Assert.*;
import org.junit.Test;
public class BagImplementationTest {
@Test
public void test() {
BagImplementation thisBag = new BagImplementation();
String input1 = "hi";
Boolean added1 = thisBag.add(input1);
assertEquals(true, added1);
String input2 = "hi";
Boolean added2 = thisBag.add(input2);
assertEquals(true, added2);
String input3 = "hi";
Boolean added3 = thisBag.add(input3);
System.out.println(thisBag.getCount());
assertEquals(true, added3);
String input4 = "hi";
Boolean added4 = thisBag.add(input4);
assertEquals(true, added4);
String input5 = "hi";
Boolean added5 = thisBag.add(input5);
System.out.println(thisBag.getCount());
System.out.println(added5);
assertEquals(false, added5);
}
}
JUnit 테스트는 처음 네 테스트를 충족해야하고, 다섯 번째는 거짓이기 때문에 통과 할 예정이다. 그러나 마지막 테스트에서 내 테스트가 실패합니다. 또한 print 문 (System.out.println (added5) 및 assertEquals (false, added5);)은 아무 것도 인쇄하지 않습니다. 테스트 클래스가 added5의 값을 읽지 않는 것처럼 보입니다.이 작은 코드를 여러 번 디버그하여 성공하지 못했습니다. 어떤 도움을 주시겠습니까?
참고 : 매개 변수 num을 5로 설정하고 마지막 어설 션을 "assertEquals (true, added5)"로 설정하면 테스트가 통과합니다. 당신의 add
기능에