###前提・実現したいこと
関数型IFを返却するメソッドの戻り値を検証したい場合、どうしたらいいでしょうか。
###発生している問題・エラーメッセージ
以下のようなメソッドがあった場合
java
1 public Function<String, String> sampleMethod(boolean flg) { 2 3 if (flg) { 4 return str -> str + "hoge"; 5 } else { 6 return str -> str + "fuga"; 7 } 8 9 }
引数がtrueの場合に戻り値が[ str -> str + "hoge" ]であることを検証したい場合
jUnitではどう検証を行えばいいでしょうか?
また、関数型IFに適したMathcerのライブラリなどをご存知の方がいればご教示いただきたいです。
###試したこと
java
1 Main target = new Main(); 2 3 @Test 4 public void test_sampleMethod() { 5 6 // Exercise 7 Function<String, String> actual = target.sampleMethod(true); 8 9 // Verify 10 Function<String, String> expect = str -> str + "hoge"; 11 assertThat(actual.apply("hoge"), is(expect.apply("hoge"))); 12 }
という検証をつくるとテスト自体はOKにはなるのですが、
java
1 Main target = new Main(); 2 3 @Test 4 public void test_sampleMethod() { 5 6 // Exercise 7 Function<String, String> actual = target.sampleMethod(true); 8 9 // Verify 10 Function<String, String> expect = str -> "hogehoge"; 11 assertThat(actual.apply("hoge"), is(expect.apply("hoge"))); 12 }
でもOKになってしまうため、正しい検証にはなっていません。
###補足情報(言語/FW/ツール等のバージョンなど)
java : 1.8.0_111
jUnit : 4.12
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/07 04:38
2017/02/07 06:02
2017/02/08 00:15
2017/02/08 00:51