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());
}
但我试图找出如何创建调用一个测试用例增加GradesCapacity()方法。这就是我现在所拥有的,但它仍然不能满足Web-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());
}
设计查询:应该'increaseGradesCapacity'公开吗?这看起来像内部API。但无论哪种方式,调用'addGrade'都会污染增加容量的测试......为什么不直接调用increaseGradesCapacity并测试该数组是否更大并且已正确保持内容? – Ash