2017-11-22 21 views
0

以下のクラスの単体テストケースを作成しようとしています。特に、 'isSumOfTaskWeightIsValid()'メソッドは以下のとおりです。プライベートメンバーがそれに関わっています。テストケースを書くのを助けてください。私はそれが 'mTasks'をループするそのメソッドの 'forループ'のために、難しいと思っています。前もって感謝します。プライベートメンバーのユニットテストリスト<Integer>アンドroidのタスク

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

あなたmTasksリストを埋めるために@Beforeアノテーションを使用することができ、その後、あなたの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());  
} 
+0

ありがとう。それは本当に問題を解決するのに役立った。私はそれを解決することができます。ありがとう –

関連する問題