ポイント
テストケースの実装中に同じ処理を関数化して実行するように実装しました。
詳細
具体的には以下の赤い部分を2回書かずにFunctional Interfaceを使用するように実装しました。実装したコードはGitにアップしています。参照しているクラスは同じディレクトリに配置してあります。
/** 自分の周りをチェックするメソッドのテストケース */ @Test public void testCheckAround() { //// 本当はメソッド1つにつき1ケースのテストを行うが、小さなテストなので勘弁してください。。。 //// try { Method test = this.getPrivateMethod("checkAround", String.class); Consumer func = str -> { try { test.invoke(target, str); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { e.printStackTrace(); fail("アクセス違反です。"); } }; //// サンプルデータ1での検証 //// func.accept("1010010010"); // テストケース1:周囲にアイテムがあるかの判定 ClientData data = target.getClientData(); assertEquals(true, data.isItem()); // テストケース2:周囲に相手プレーヤがいる化の判定 assertEquals(false, data.isPlayer()); // テストケース3:行動できるスペースにブロックがあるかどうか WalkHandler handle = data.getHandler(); assertEquals(true, handle.isOkUp()); assertEquals(true, handle.isOkDown()); assertEquals(true, handle.isOkLeft()); assertEquals(true, handle.isOkRight()); //// サンプルデータ2での検証 //// func.accept("1020020020"); // テストケース1:周囲にアイテムがあるかの判定 ClientData data2 = target.getClientData(); assertEquals(true, data2.isItem()); // テストケース2:周囲に相手プレーヤがいる化の判定 assertEquals(false, data2.isPlayer()); // テストケース3:行動できるスペースにブロックがあるかどうか WalkHandler handle2 = data2.getHandler(); assertEquals(false, handle2.isOkUp()); assertEquals(false, handle2.isOkDown()); assertEquals(true, handle2.isOkLeft()); assertEquals(true, handle2.isOkRight()); } catch (SecurityException e) { e.printStackTrace(); fail("セキュリティ違反です。"); } catch (IllegalArgumentException e) { e.printStackTrace(); fail("メソッドの引数違反です。"); } }
引数が1つで、返却値がない場合はConsumerを使用する、他の型の場合はそれぞれに対応するIFを使用するようです。参考にしたのはこちらのサイトです。
ちなみに、デバックをしている時の風景をキャプチャしてみました。
でわでわ。。。
## 関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
Java Basic一覧
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜