2013-10-31 2 views
0

이들은 지금 시험하고있는 방법입니다.JUnit 테스트 케이스에서 메소드 내의 메소드를 테스트하는 방법은 무엇입니까?

public void addGrade(String newGrade) { 
    if (numGrades >= grades.length) { 
     increaseGradesCapacity(); 
    } 
     grades[numGrades] = newGrade; 
     numGrades++; 
} 

public void increaseGradesCapacity() { 
    String[] newGrades = new String[grades.length + 1]; 
    for (int i = 0; i < grades.length; i++) { 
    newGrades[i] = grades[i]; 
    } 
    grades = newGrades; 
} 

현재, 나는 increaseGradesCapacity() 메서드를 호출 할 필요없이 테스트 하나의 테스트 케이스가 있습니다

@Test public void addGradeTest() { 
    String[] myGrades1 = {"a90", "a100", "q90", "q80", 
    "p100", "e87.5"}; 

    String[] myGrades2 = {"a90", "a100", "q90", "q80", 
    "p100", "e87.5", "q100"};    

    WeightedGrades2 wg = new WeightedGrades2("Aegon Targaryen", 6, myGrades1); 

    wg.addGrade("q100"); 

    Assert.assertArrayEquals("Test for addGrade.", 
    myGrades2, wg.getGrades());       
} 

을하지만 난을 호출하는 테스트 케이스를 만드는 방법을 알아 내려고 노력하고있어 increaseGradesCapacity() 메소드. 지금 당장 가지고있는 것이지만 웹 -CAT 요구 사항을 만족 시키지는 못합니다. 누구든지 아이디어가 있습니까?

@Test public void addGradeTest2() { 
    String[] myGrades1 = {"a90", "a100", "q90", "q80", 
    "p100", "e87.5"}; 

    String[] myGrades2 = {"a90", "a100", "q90", "q80", 
    "p100", "e87.5", null, "q100"}; 

    WeightedGrades2 wg = new WeightedGrades2("Anakin Skywalker", 7, myGrades1); 

    wg.increaseGradesCapacity(); 
    wg.addGrade("q100");    

    Assert.assertArrayEquals("Test for addGrade.", 
    myGrades2, wg.getGrades()); 
} 
+1

디자인 검색어 : '증가하는 그래픽 카드 용량'을 공개해야합니까? 내부 API처럼 보입니다. 그러나 addGrade를 호출하면 증가하는 용량 테스트가 오염 될 수 있습니다. 왜 증가 그리드 용량을 호출하고 배열 테스트가 더 큰지, 올바르게 내용을 유지 관리하지 않는 이유는 무엇입니까? – Ash

답변

0

이 경우 충족해야하는 "웹 CAT 요구 사항"을 알지 못하지만 잘하면 귀하의 질문에 대한 답변을 제공해 드리겠습니다.

increaseGradesCapacity()이라는 메서드가 grades 배열의 크기를 증가시키는 경우이 메서드를 호출하기 전과 후에 크기를 테스트하면됩니다. 그래서 테스트는 다음과 같습니다 나는 wg.addGrade('q100'); 라인을 도랑을

@Test public void addGradeTest2() { 
    String[] myGrades1 = {"a90", "a100", "q90", "q80", "p100", "e87.5"}; 
    WeightedGrades2 wg = new WeightedGrades2("Anakin Skywalker", 7, myGrades1); 

    int sizeBeforeIncrease = wg.getGrades().length; 

    wg.increaseGradesCapacity(); 

    int sizeAfterIncrease = wg.getGrades().length; 

    Assert.assertTrue("Expecting size after increase to be larger.", 
         sizeAfterIncrease > sizeBeforeIncrease); 
} 

공지 방법에 대해 설명합니다. 두 번째 테스트가 increaseGradesCapacity()의 테스트에만 전적으로 관련되어 있고 addGrade 메서드가 크기를 궁극적으로 확인하려는 성적 배열을 수정하면 정확하지 않거나 적어도 집중되지 않고 하나의 개념에 포함됩니다.

관련 문제