2

クラスのメソッドを取得しました

interface Class1{
    void method1(SomeObject... parameters);
}

カスタムのハムクレストマッチャーがあります

public class SomeObjectMatcher extends BaseMatcher<SomeObject>{...}

メソッド1に渡されたオブジェクトに一致する期待値の記述方法

SomeObject someObject = new SomeObject(...);
...

mockery.checking(new Expectations(){{
    oneOf(class1).method1(with(new SomeObjectMatcher(someObject1)));
}}

実際の呼び出しは

class1.method1(someObject);

渡されたオブジェクトと期待されるオブジェクトは同じですが、実際に渡されたパラメーターはsomeObject1ではなく、SomeObject [] {someObject1}(1つのオブジェクトのみを持つ配列-someObject1)であるため、SomeObjectMatcherは失敗しますか?チェーンに新しいマッチャーを追加する方法はありますか?

oneOf(class1).method1(with(arrayHas(new SomeObjectMatcher(someObject1))));
4

1 に答える 1

1

に置き換えarrayHasてみてくださいhasItemInArrayarrayContaining配列内の複数のアイテムを照合するには、およびを使用できますarrayContainingInAnyOrder

于 2011-11-26T07:13:02.173 に答える