7

Mockito を使用してアクションの動作を検証しようとします。テストコードはこんな感じ

final Type1 mock = mock(Type1.class);
new SomeAction<Type1>(mock).actionPerformed(null);

verify(mock).someMethod();

メソッド actionPerformed には、Type1 のコンストラクターで提供されたオブジェクトに対する someMethod の呼び出しだけが含まれています。しかし、Mockito は、期待されたメソッド呼び出しが行われず、代わりに別のメソッド呼び出しが行われたと不満を漏らしています。しかし、Mockito によって出力された 2 つの呼び出しの文字列表現はまったく同じです!

何が起こっているのか説明はありますか?

更新: Mockito からの ErrorMessage

Argument(s) are different! Wanted:
type1.someMethod();
-> at xxx
Actual invocation has different arguments:
type1.someMethod();
-> at xxx
4

1 に答える 1

4

これは少し大げさですが、toString の実装を確認してください。実際には異なるのに、単体テストの観点からは期待値と観測値が同じように見える、いくつかの苛立たしい単体テストシナリオに遭遇しました。最終的には、実際には類似性がないのに、類似性があると思わせたのは toString のバリエーションでした。

于 2010-12-04T00:59:50.203 に答える