メモです。応用が効くものではないのでご注意を。
Staticなユーティリティクラスが生成するオブジェクトを使ったメソッドのテストを、EasyMockで行おうとしたところ…
- テストコードから渡されたモックオブジェクトのID
- 本処理内部でStaticなユーティリティクラスが生成したオブジェクトのID
が食い違うのでエラー……という現象に悩まされていました……。が、どうせ結果は単体テストじゃ検証できず、このメソッドをパスさえすればOK、というものだったので、下記のようなMockの振る舞い定義で、型のチェックだけ行わせてスルーすることに。
byte testBytes = new byte{anyByte()};
expect(XXService.createYYYYY(anyObject(String.class), anyObject(ZZZObject.class), testBytes, anyObject(String.class))).andReturn(resultObject);
anyObjectとかanyIntとかってのはこういう風に「具体的な内容違うケド、型だけ一致してりゃいいから」という使い方をするものだったのですね(←判らずにやっている)。