misc.log

日常茶飯事とお仕事と

EasyMockで厳密なチェック無しで型一致のみで先に進める…

メモです。応用が効くものではないのでご注意を。


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とかってのはこういう風に「具体的な内容違うケド、型だけ一致してりゃいいから」という使い方をするものだったのですね(←判らずにやっている)。