android 中私有成员列表<Integer> mTasks 的单元测试
Unit Testing for private member List<Integer> mTasks in android
我正在尝试为以下 class 编写单元测试用例。特别地,对于下面的 'isSumOfTaskWeightIsValid()' 方法。它有私人成员参与其中。您能否为此编写测试用例。我发现这很困难,因为该方法中的 'for loop' 在 '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);
}
}
您可以使用 @Before
注释来填充您的 mTasks
列表,然后您可以调用您的 isSumOfTaskWeightIsValid
方法。您还需要在构造函数中设置 mIsGood
参数。这是一个示例测试 class。
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());
}
我正在尝试为以下 class 编写单元测试用例。特别地,对于下面的 'isSumOfTaskWeightIsValid()' 方法。它有私人成员参与其中。您能否为此编写测试用例。我发现这很困难,因为该方法中的 'for loop' 在 '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);
}
}
您可以使用 @Before
注释来填充您的 mTasks
列表,然后您可以调用您的 isSumOfTaskWeightIsValid
方法。您还需要在构造函数中设置 mIsGood
参数。这是一个示例测试 class。
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());
}