これを例をあげて説明します:JUnitテストの標準構造は存在しますか?テストごとにいくつのアサーションが多いのですか?
私はXの整数の配列と開始位置を含む余分な整数を受け取る関数を持っているとします。その位置が、0
値を無視して、配列が最後に開始位置から、10の以上の値が含まれていない場合-1000000
を返します。
public double calculateAverage(ArrayList<Integer>, int startingPosition){
//functionLogic
return myAverage;
}
私はユニットテストに新しいですが、私は次の操作を行うことをお勧めここのテスト:
- 20の整数リストでテストし、
5
を開始位置としてテストします。 (5
から14
までの10個の数値の平均値を返す必要があります) - 20の整数リストと
15
を開始位置としてテストします。 (-1000000
を返す) - 9整数リストでテストします。
- 数字の半分が
0
であり、開始位置が5である20個の整数でテストします(開始位置に関係なく-1000000
を返す必要があります)。 (5
と14
の間の数値の平均を返す必要があります(0
秒)。 - 数字の半分が
0
で開始位置が15の20の整数でテストします。私はあなたのほとんどは、単一のテストについての詳細を知っている確信しているとして、このテストが十分でない、またはあまりにも多くの、または単に悪いテスト、任意の改善にコメントすること自由に感じてください可能性があります
に(-1000000
を返す必要があります)私よりも。
私の質問:
私は5つのJUnitテスト関数を記述する必要がありますか? 5つのアサーションで1つだけ書く方が良いですか?あるいは私は2と3のグループでそれを(例えば)ダイビングするのですか?
ここで推奨されるスタイルは何ですか?
ご利用いただきありがとうございます。
これは単なる例でしたが、現時点では現在現時点では36個のユニットテストがある500行クラスがありますが、コードの100%もカバーしません。それは普通ですか? – Tuzane
それは...たくさん聞こえる。しかし、それにはたくさんの理由があります。例えば、あなたのコアクラスは、あまりにも多くの異なることをしています(単一責任の原則に違反しています)。その意味では、おそらくcodereview.stackexchange.comにそのコードを入れて、人々が何を言わなければならないかを見ます。どのような種類のコーディングスキルでも、単体テストコーディングスキルは、レビューを行うときにのみ向上します。より多くの方が良い。 – GhostCat
私はちょうど編集とリンクを見て、共有のおかげで、それは本当に具体的なアドバイス、正確に私が必要なものを提供します。ありがとう。 – Tuzane