Код: Выделить всё
given(settingsMock.getConnections()).willReturn(connections);
will(i -> given(settingsMock.getConnections()).willReturn(i.getArgument(0))).given(settingsMock).setConnections(any());
Фактический объект настроек считывает и записывает в физический XML с помощью getConnections() и setConnections() соответственно.
Я как бы полагаюсь на тот факт, что макет имитирует мутацию состояния, поскольку мой тестовый метод должен убедиться, что правильно (обновлено) Объект настроек передается в DAO, а не в устаревший.
Код: Выделить всё
ArgumentCaptor captor = ArgumentCaptor.forClass(DbSettings.class);
then(settingsDaoMock).should().saveSettings(captor.capture());
DbSettings savedSettings = captor.getValue();
// this assert follows deletion of one of the initially loaded connections from the GUI list
assertThat(savedSettings.getConnections()).containsOnly(postgresConnection);
Что вы об этом думаете? Должен ли я сохранить свой подход или заменить его чем-то лучшим?
Подробнее здесь: https://stackoverflow.com/questions/798 ... or-replace
Мобильная версия