比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

ここでは、getItemDB(Connection, String) メソッドの stmt.executeQuery(sql); 実行時に java.sql.SQLException を発生させるテストコードを作成します。

Image Modified

...


  1. testGetItemDB() メソッドに以下の 2 行を追加します。

    コード ブロック
    themeEclipse
    doThrow(new SQLException("invalid SQL statement"))

...

  1. 
    .when(createStatementResult).executeQuery(anyString());

    追加する位置は getItemDB(Connection, String) の呼出し前にします。

...


  1. .CartTest.java クラスの import 文に以下の 3 行を追加します。

    コード ブロック
    themeEclipse
    import static org.mockito.Mockito.doThrow;

...

  1. 
    import static org.mockito.Matchers.anyString;

...

  1. 
    import java.sql.SQLException;

3.以下に編集後のテストメソッドを以下に記載します。

~省略~

...


  1. 以下に編集後のテストメソッドを以下に記載します。

    コード ブロック
    themeEclipse
    ~省略~
    import static org.mockito.Mockito.doThrow;
    import static org.mockito.Matchers.anyString;
    import java.sql.SQLException;
    
    ~省略~
    import static org.mockito.Mockito.doThrow;

...

  1. 
    import static org.mockito.Matchers.anyString;

...

  1. 
    import java.sql.SQLException;

...

 

~省略~

@Test

...

  1. 
    
    ~省略~
    @Test
    public void testGetItemDB3() throws Exception {

...

  1. 
    	// Given

...

  1. 
    	Cart underTest = new Cart();

...

  1. 
    
    	Connection con = mock(Connection.class);

...

  1. 
    	Statement createStatementResult = mock(Statement.class);

...

  1. 
    	when(con.createStatement()).thenReturn(createStatementResult);

...

  1. 
    	doThrow(new SQLException("invalid SQL statement"))

...

  1. 
    	.when(createStatementResult).executeQuery(anyString());

...

  1. 
    	String itemId = "001";

...

  1. 
    	Item result = underTest.getItemDB(con, itemId);

...

  1. 
    
    	// Then

...

  1. 
    	// assertNotNull(result);

...

  1. 
     }

...

  1. 
    ~省略~

...

  1. 
    }

...



  1. ソースコードを保存しプロジェクトのビルドが正常に行われることを確認後、単体テストアシスタントビューで Image Modifiedをクリックしてテストを実行します。

...


  1. カバレッジビューとソースコードペインに表示されるラインで例外処理が実行されていることを確認します。

    Image Modified