2

質問がすでに尋ねられているかどうかはわかりませんが、見つかりませんでした...プレゼンターをテストするために、自分のビューをモックする方法を探していますか?ビューにmockitoを使用してプレゼンターに設定しようとしましたが、結果としてpresenter.getDisplay()(ビューのゲッター)を呼び出すと、ウィジェットがすべてnullになりますか?私はそれが通常のmockitoであると信じているので、ウィジェットをモックしません。

私は何かを間違えたと100%確信していますが、それを見つけることができませんでした。

あなたの啓発に感謝します:)

4

3 に答える 3

2

非常に簡単な実例を次に示します。

import junit.framework.TestCase;
import org.mockito.Mockito;

public class SimpleGwtTest extends TestCase {
    private static class UpperCasePresenter {
        private final Display display;

        public interface Display {
            void setString(String s);
        }

        private UpperCasePresenter(String s, Display display) {
            this.display = display;
            display.setString(s.toUpperCase());
        }
    }

    public void testPresenter() {
        UpperCasePresenter.Display d = Mockito.mock(UpperCasePresenter.Display.class);
        new UpperCasePresenter("foo", d);
        Mockito.verify(d).setString("FOO");
    }
}

もちろん、通常、プレゼンターはテストケースの中には入っていません。

于 2010-06-07T08:01:51.120 に答える
2

MVPでは、 PresenterはDisplay、、、などのgwtインターフェイスおよび必要に応じて新しいインターフェイスを介してViewクラス()に依存します。プレゼンタークラスは、ウィジェットクラスではなく、これらのインターフェイスを直接使用する必要があります。したがって、モックビューインターフェイスはかなり単純であり、テストメソッド間で共有する必要があります(またはを使用)。これには、などのGWTインフラストラクチャのモックも含まれる必要があります。HasValueHasHTMLHasClickHandlerssetUp@BeforeEventBus

EasyMockの例を含む素敵なブログ(簡単ですが、mockitoに変換するのは簡単ではありません)については、こちらを参照してください。

于 2010-07-14T04:03:42.147 に答える
0

getDislay()を呼び出すときに、モックビューを返すようにmockitoに指示したことを確認する必要があります。

when(presenter.getDisplay())。thenReturn(mockView);のようなSth

于 2010-06-07T05:11:53.563 に答える