1
public void someMethod() throws Exception {
        // null 
        when(request.getParameter("abc")).thenReturn(null);

        try {
            abc.manageIncome(request, response, nancy, null);
            fail();
        } catch(IllegalArgumentException ex) {}

        verify(nancy.manageIncome(request, response, nancy, "abc"));
    }

次のエラーが表示されますjava.lang.AssertionError

修正方法は?モッキートを使用しています。

4

1 に答える 1

3

これがあなたのに関連しているかどうかはわかりませんが、メソッドAssertionErrorを誤用しています。これは、メソッド呼び出し全体ではなく、問題のモックのみをラップする必要があります。verifywhen

/* BAD */  verify(nancy.manageIncome(request, response, nancy, "abc"));
/* GOOD */ verify(nancy).manageIncome(request, response, nancy, "abc");

(なぜですか?基本的whenに、モックのメソッドが戻った後にのみ呼び出されるため、モックは発生したばかりの呼び出しに基づいて将来のスタブを作成できます。verifyメソッドがモックで呼び出される前に呼び出す必要があるため、混乱しませんテスト対象のシステムからの実際の呼び出しによる検証、および必要に応じてスローまたはリターンします。)

于 2013-02-14T02:27:02.837 に答える