JUnit の mockito thenAnswer を lambda で

先日書いた、
JUnit mockito の return を遅らせたい(時間を掛けたい) - Oboe吹きプログラマの黙示録

よく考えたら thenAnswer は、lambda で書けましたね。。

Mockito.when(foo.getAgent(Mockito.contains("a"))).thenAnswer(new Answer<String>() {
    @Override
    public String answer(InvocationOnMock invocation){
        System.out.println("invocation.getArgument(0) = "+invocation.getArgument(0));
        return "A";
    }
});

というのを、

Mockito.when(foo.getAgent(Mockito.contains("a"))).thenAnswer(i->{
      System.out.println("i.getArgument(0) = "+i.getArgument(0));
      return "A";
});

下のようにここまで省略すると逆に意味がなく、

Mockito.when(foo.getAgent(Mockito.contains("a"))).thenAnswer(i->"A");

{ }で書いた方が if 制御文などを差し込める。