Я тестирую свое приложение с помощью JUnit. Он использует (или пытается использовать ...) шаблон MVP, hibernate и swing gui.Должен ли быть видимым во время модульного тестирования?
В моем тесте я проверяю, работает ли упорство, как ожидалось, например. это формат даты правильно, являются отношения между таблицами базы данных правильно, и т.д.
Вот (отредактированный) пример:
@Test
public void testCheckBeitragCalculation() {
MainView view = new MainView();
view.initGUI();
Controller persist = new Controller(view);
persist .saveData(testObject);
Controller edit = new Controller(view);
Controller search = new Controller(edit);
search.getData("10001"); // primary key
TestObject t2 = edit.getViewData();
assertEquals(10, t2.getBeitrag());
}
Я посвящаю главный вид, потому что два контроллера необходима ссылка на главном экране для передачи данных.
Контроллер persist
сохраняется объект, контроллер edit
представляет собой контроллер для вида редактирования и контроллера search
необходима ссылка на edit
, потому что он смотрит на объект в базе данных, а затем отображает эти данные в режиме редактирования через контроллер edit
.
Поскольку эти контроллеры отображают данные в графическом интерфейсе, графический интерфейс пользователя отображает секундную секцию во время модульного теста.
Это плохая практика? Я читал, что вы не должны тестировать GUI-код, но я не тестирую сам GUI, он просто вызывается проверенным кодом.
Спасибо за консультацию!
Если вы когда-либо запускаете эти тесты на машине без дисплея (встроенные в Linux ...), у вас будут проблемы. Возможно, вы захотите проверить насмешливые рамки, такие как mockito, чтобы скрыть свой пользовательский интерфейс при тестировании контроллера/модели. – Jan
Нет, нет, нет. Нет. Единичный тест должен проверять UNIT, а не все приложение. Кроме того, если вы передаете MainView (который является классом, а не интерфейсом!) В контроллер, эти два связаны слишком сильно. – Manu