mockito で可変長引数に Matcher を使うときに注意すること

mockito で使って可変長引数を持つメソッドをモックしたとき、明示的に配列を使うとMatcherを使う/使わないで挙動が違う. 例えば、

public class Hoge {
    public int varArgsMethod(String...args) {
        return args.length;
    }
}

という定義がある時、

        Hoge hoge = mock(Hoge.class);

        hoge.varArgsMethod("a", "b");

        verify(hoge).varArgsMethod("a", "b");                   // OK
        verify(hoge).varArgsMethod(new String[]{"a", "b"});     // OK
        verify(hoge).varArgsMethod(eq("a"), eq("b"));           // OK
        verify(hoge).varArgsMethod(eq(new String[]{"a", "b"})); // NG

となる. 2番目は通って4番目はとおらない. when()でMatcherを使うときにも同様なことが起きる.