私有成员的单元测试列表<integer> mTasks在android中

时间:2017-11-22 01:43:08

标签: android unit-testing junit mockito android-testing

我正在尝试为下面的课程编写单元测试用例。特别是,从下面的'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);
}

}

1 个答案:

答案 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());       
}