私は次のようなスニペットを持っています
public void setTarget(String target) throws TargetException{
if(target = null){
throw new TargetException();
}
this.target = target;
}
public void getTarget(){
return this.target;
}
上記のスニペットをユニットテストしています
@Test(expected = TargetException.class)
public void testTargetSetting() throws TargetException{
//For coverage of code in if loop
String target = null;
MyBean.setTarget(target);
//For coverage of code in else loop
target="abc";
MyBean.setTarget(target);
}
上記のコードの問題は、テストするクラスのコードカバレッジが、メソッドsetTargetである100%を示していることです。ifブロックとelseブロックの両方に入ります。ただし、テストクラスメソッド、つまりtestTargetSettingの範囲はカバーされていません。常に赤で表示されます。
コードカバレッジにEmmaを使用しています。実際のクラスメソッドとテストクラスメソッドの両方のコードカバレッジをどのように満たすことができるかについてのアイデア。
注:上記のコードは説明のみを目的としています。