...
作成された testGetItemDB() を確認します。(テストメソッド名は連番で付けられるため本チュートリアルの実施順によって異なります。)
@Test | |
public void testGetItemDB() throws Exception { | テストメソッド |
// Given | |
Cart underTest = new Cart(); | テストインスタンスの生成 |
// When | |
Connection con = mockConnection(); | getItemDBメソッドのConnection引数のモックオブジェクト呼び出し |
String itemId = ""; // UTA: デフォルト値 | getItemDBメソッドのString引数 |
Item result = underTest.getItemDB(con, itemId); | getItemDB メソッドの呼び出し |
// Then | getItemDB の戻り値のチェック用アサーションテンプレート |
// assertNotNull(result); | |
} |
テンプレート作成時に getItemDB(Connection, String) メソッドの引数となるString オブジェクトにはデフォルト値 “” が格納されます。
同じく引数のConnection オブジェクトは同一テストクラス内に生成された Connection のモックを生成・設定するためのヘルパーメソッド mockConnection() の戻り値が格納されます。
...
作成された mockConnection() を確認します。(一部改行を入れています。)
private static Connection mockConnection() throws Throwable { | ヘルパーメソッド |
Connection con = mock(Connection.class); | Connection のモックオブジェクト生成 |
Statement createStatementResult = mockStatement(); | Statement のモックヘルパーメソッド呼び出し …① |
when(con.createStatement()). thenReturn(createStatementResult); | Connection#createStatement メソッドの戻り値を設定 …② |
return con; | Connectionを返却 |
} |
テスト対象の getItemDB(Concection, String) メソッドの内部で Connection オブジェクトは Connection#createStatement メソッドで Statement オブジェクトの生成をします。
mockConnection() ヘルパーメソッドではテストケースの実行時に Connection#createStatement メソッドの戻り値が任意の値を戻すためのコードが自動生成されます。(上記②)
なお、Connection#createStatement メソッドの戻り値となる Statement はテストケースの生成で同時に生成された mockStatement() メソッドでモック化されています。(上記①)
...
3.testGetItemDB() メソッドに以下のアサーションが追加されたことを確認します。
// Then - メソッド getItemDB(Connection, String) の結果 のアサーション assertNotNull(result); assertEquals("", result.getName()); assertEquals("", result.getId()); assertEquals(0, result.getPrice()); assertEquals(0, result.getCount()); |
4.変更後の testGetItemDB() メソッドを から実行します。
...