我正在尝试为下面的课程编写单元测试用例。特别是,从下面的'isSumOfTaskWeightIsValid()'方法。它有私人成员参与其中。你能帮忙写一下测试用例吗?我发现很难,因为该方法中的'for循环'在'mTasks'上循环。提前谢谢。
Class TaskCard {
private List<Integer> mTasks = new ArrayList<>();
private boolean mIsGood;
public TaskCard(boolean isGood) { mIsGood = isGood}
public void setUpListofTasks(DataBaseHelper db){
mTasks.addAll(db.getTasks());
}
public boolean isSumOfTaskWeightIsValid(){
int sum = 0;
for(int taskWeight : mTasks)
{ sum += taskWeight;
}
return (sum>0 || mIsGood);
}
}
答案 0 :(得分:1)
您可以使用@Before
注释填充mTasks
列表,然后拨打isSumOfTaskWeightIsValid
方法。您还需要在构造函数中设置mIsGood
参数。这是一个示例测试类。
private TaskCard taskCard;
@Before
public void initObjects() {
taskCard = new TaskCard(...); //True or False
//Initialize DataBaseHelper here
DataBaseHelper db = new DataBaseHelper();
taskCard.setUpListofTasks(db);
}
@Test
public void testIsSumOfTaskWeightIsValid() {
// Now your list is filled with the value you prove in @Before
assertTrue(taskCard.isSumOfTaskWeightIsValid());
}