我正在使用 Eclipse 中的 Junit 测试对学生的 Java 编程作业进行评分。我的目标是尽可能少地修改学生的提交,但我目前的方法迫使我在他们的提交中键入“extends ParentClass”。
我目前的方法是将每个学生作业放在自己的包中,并从父类扩展我想测试的类
学生 A APPLE 示例班
package PA04.studentA;
import PA04.providedCode.TestApple;
public class apple extends TestApple {
public void print() {
System.out.println("Look I can Print A");
}
}
学生 B 苹果示例班
package PA04.studentB;
import PA04.providedCode.TestApple;
public class apple extends TestApple {
public void print() {
System.out.println("Look I can Print B");
}
}
TESTAPLE 家长班
package PA04.providedCode;
public abstract class TestApple {
public abstract void print();
}
然后,我使用超类参数类型的辅助方法来验证学生程序的行为
学生测试计划
@Test
void testStudentA() {
PA04.studentA.apple a = new PA04.studentA.apple();
packageTest(a);
}
@Test
void testStudentB() {
PA04.studentB.apple b = new PA04.studentB.apple();
packageTest(b);
}
/**
* helper method to test behavior of classes with the same name
* but different packages
*/
private void packageTest(TestApple a) {
a.print();
}
学生测试计划的输出
Look I can Print A
Look I can Print B
输出是我所期望的,但是这种方法需要我修改学生的程序来扩展父类
有没有一种方法可以在不修改它们的情况下为不同的学生班级使用辅助方法?
慕村225694
开心每一天1111
相关分类