C0レベルカバレッジが100%にならないのですが、テストで使っているメソッドが使っていないことになっているのではないかと考えています。
すなわち、以下のような状況です。
まず、テストするコードはこのようなコードです。
public class Movie { //フィールド private String title; //タイトル private Date date; //公開日 //コンストラクタ public Movie() { } public Movie(String title) { this.title = title; } //メソッド public void setTitle(String title) { if(title == null){ throw new NullPointerException("引数がnullに成ってます"); } this.title = title; } public String getTitle() { return this.title; } public void setDate(Date date) { Date now = new Date(); if(date == null) { throw new NullPointerException("引数がnullに成ってます"); } else if(date.getTime()> now.getTime()) { throw new IllegalArgumentException("公開日が未来になってしまう"); } this.date = date; } public Date getDate() { return this.date; } }
テストコードはこちらです。
public class MovieTest { @Test public void constructorCheck() { try { Movie mv1 = new Movie(); Movie mv2 = new Movie("ショーシャンクの空に"); } catch(Exception e) { e.printStackTrace(); } } @Test public void getAndSetTitle() { try { Movie mv = new Movie(); mv.setTitle("aaa"); System.out.println(mv.getTitle()); } catch(Exception e) { e.printStackTrace(); } } @Test public void getAndSetDate() { try{ Movie mv = new Movie(); Date date = new Date(); mv.setDate(date); System.out.println(mv.getDate()); } catch(Exception e) { e.printStackTrace(); } } @Test(expected = NullPointerException.class) public void setTitleWithNull() { Movie mv = new Movie(); mv.setTitle(null); } @Test(expected = NullPointerException.class) public void setDateWithNull() { Movie mv = new Movie(); mv.setDate(null); } @Test(expected = IllegalArgumentException.class) public void setDateWithFuture() { Movie mv = new Movie(); mv.setDate(new Date(1899999999999L)); } }
getTitle、setDate、getDateが使われていないことになっています。
でも、上に示した通り、メソッドは使っているので、悩んでおります。
こんな感じです。
ご存知の方、回答よろしくお願いします。
あなたの回答
tips
プレビュー