Полагаю, этот сценарий состоит из двух наборов тестов.
- У вас должен быть интерфейс, называемый клиентом.Вы должны посмеяться над этим и посмотреть, правильно ли ваш DeliveryScheduleParser взаимодействует с ним.Поэтому сначала смейтесь над своим Клиентом и протестируйте ваш DeliveryScheduleParser.
- Теперь определите свои ожидания от Клиента и запишите свои тесты один за другим.Затем реализуйте свой класс, который реализует клиентский интерфейс (например, ClientImpl).
Для насмешек вы можете использовать Mockito или любую среду для имитации.
Таким образом, чтобы "убедиться, что клиентский объект правильно заполнен нужными объектами", вы должны проверить Client
, но не сразу DeliveryScheduleParser
.На самом деле ваш DeliveryScheduleParser
должен быть соавтором и взаимодействовать с Client
.
Тогда вы можете захотеть разложить эту реализацию аналогичным образом, поскольку звучит так, как будто объекты здесь довольно связаны.
Для ArrayList
взаимодействий вы можете использовать интерфейс List
и макетЭто.
Тестирование на разных электронных таблицах является интеграционным тестом.Здесь вы снова можете издеваться над вашим провайдером файлов (здесь это не ясно) таким образом, что вы можете предоставлять разные таблицы в каждом тесте.Вы можете просто добавить эти таблицы в ресурсы в тестовой папке и использовать загрузчик ресурсов для загрузки тестовых листов.Я бы также отделил эти тесты от юнит-тестов на скорость.
Я бы хотел быть более конкретным, но надеюсь, что это поможет ...