GWT и макет представления в шаблоне MVP - PullRequest
2 голосов
/ 07 июня 2010

Я не знаю, если вопрос уже задан, но я не смог его найти ... Я ищу способ высказать свое мнение, чтобы проверить моего докладчика? я пытаюсь использовать mockito для представления и установить его в Presenter, но в результате в Presenter, когда я вызываю Presenter.getDisplay () (получатель для представления), весь мой виджет пуст? поскольку я считаю, что это нормально, mockito не будет издеваться над виджетом.

Я на 100% уверен, что что-то ошибся, но не смог найти.

спасибо за ваше просветление :) 1005 *

Ответы [ 3 ]

2 голосов
/ 07 июня 2010

Вот очень простой рабочий пример:

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");
    }
}

Конечно, обычно ваш докладчик не попадает в ваш тестовый набор.

2 голосов
/ 14 июля 2010

С MVP Presenter зависит от класса View (Display) через интерфейсы gwt, например HasValue, HasHTML, HasClickHandlers и т. Д., И, возможно, от новых интерфейсов при необходимости. Классы докладчика должны использовать эти интерфейсы вместо классов виджетов напрямую. Поэтому интерфейсы Mocking View довольно просты и должны использоваться всеми методами тестирования (с использованием setUp или @Before). Это также должно включать в себя фиктивную инфраструктуру GWT, такую ​​как EventBus и т. Д.

Для хорошего блога с примерами с EasyMock (легко, но не просто конвертировать в mockito) см. здесь .

0 голосов
/ 07 июня 2010

вам нужно убедиться, что вы сказали mockito возвращать смоделированный вид при вызове getDislay ().

Sth, как когда (presenter.getDisplay ()) thenReturn (mockView).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...