0

EasyMock を使用して void メソッドの期待値を設定する場合、オブジェクト配列をメソッドの引数の 1 つとして指定することはできますか?

たとえば、次のようなものがあるとします。

Errors mockErrors = createMock(Errors.class);
...
mockErrors.rejectValue(Object[]{"5", "2"});
mockErrors.replay();

classUnderTest.someMethod();

これにより、ClassUnderTest 内で someMethod が rejectValue(Object[]{"5", "2"}); を呼び出します。

ただし、期待値が正確に呼び出されているものに設定されているにもかかわらず、簡単なモックは予期しないメソッド呼び出しについて不平を言います。

>     Unexpected method call rejectValue(["5", "2"]):
>         rejectValue(["5", "2"]): expected: 1, actual: 0

内部では Object[] の equals メソッドに依存しており、2 つが異なるため false を返し、条件を満たさないためだと思います。

それを回避する方法はありますか?私はexpect()を使用して期待値を設定していないので、any()を使用できます... voidメソッドで同じことを行う方法はありますか?

4

1 に答える 1

6
mockErrors.rejectValue(aryEq(new Object[] {"5", "2"}));

詳細については、javadocを参照してください。

于 2012-05-01T15:59:12.610 に答える