3

次のシナリオで jmockit を使用しているときに問題が発生しました。Webで調査しましたが、まだ答えを見つけることができませんでした。

記録フェーズでは、部分的にモックされたオブジェクトに期待を設定しています。それをしている間、単一のパラメーターでプライベートメソッドをモックしたいと思います。しかし、私はそのパラメータ値にあまり関心がありません。その特定のプライベート メソッドのすべての呼び出しを、それに渡された引数のインスタンスと一致させたいと考えています。Jmockitでそれを行うにはどうすればよいですか。方法はありますか?

new Expectations(student) {
    {
        Deencapsulation.invoke(student, "setDepartment", (Department) any);
        result = new Delegate<Student>() {
            public void setDepartment(Department dept) {
                System.out.println("Mocked setDepartment() methodd.....");
            }
        };
    }
};  

上記のコードでは、メソッドが値を受け入れないため(Department) any、渡すことができません。Deencapsulation.invoke(...)null

4

2 に答える 2

8

フィールドのAPI ドキュメントには次のように記載されていることに注意してください。any

「アクセスできないメソッドまたはコンストラクターへの呼び出し (たとえば、Deencapsulation.invoke(Object, String, Object...) を使用) では、代わりに withAny(T) を使用してください。」

つまりwithAny(Department.class)invoke(...)呼び出しで使用する必要があります。

于 2014-11-18T15:59:31.487 に答える