Альтернативы шаблону "Трубы и фильтры" - PullRequest
0 голосов
/ 24 января 2019

Модификация и привязка для проверки 7-го фильтра из цепочки из 11 фильтров оказывается болезненной для тестирования. Я должен выполнить интеграционный тест от фильтра № 1 до фильтра № 11, чтобы убедиться, что фильтр № 7 работает правильно.

Каждый фильтр проходит по одной и той же ссылке на объект и работает с ним. Поэтому я не знаю, в каком состоянии находится этот объект, когда я получаю его в 7-м фильтре, который я изменяю.

Не так много документации. Так что я не знаю, в каком состоянии я нахожусь.

Существуют ли другие способы замены шаблона "Трубы и фильтры" в целом? Я ищу хороший способ, подходящий для модульного тестирования.

https://docs.microsoft.com/en-us/azure/architecture/patterns/pipes-and-filters

То, как устроена эта программа, над которой я работаю, похоже, что каждый фильтр основан на выводе предыдущего фильтра. И фильтры добавляются в определенном порядке. Фильтры нельзя переставлять в другом порядке.

1 Ответ

0 голосов
/ 24 января 2019

Я должен выполнить интеграционный тест от фильтра № 1 до фильтра № 11, чтобы убедиться, что фильтр № 7 работает правильно.

Даже если тест 1-11 пройден, выв конечном итоге тестируем выходные данные 11, а не выходные 7.

Существует три основных уровня тестирования разработчика: система, интеграция, модуль.Проверка всех 11 фильтров будет системной проверкой, также называемой сквозной проверкой.Совместное тестирование подмножества фильтров было бы интеграционным тестированием.Тестирование только одного фильтра 7 было бы модульным тестированием.

Чтобы выполнить модульное тестирование, вы должны смоделировать вход для фильтра 7. Этот фиктивный вход не имеет ничего общего с фильтрами 1-6 и со всеми, что связано со спецификацией (требованиями) фильтра 7.

Если вы не знаете требований к фильтру 7, вы не можете выполнить модульное тестирование фильтра 7. Замена шаблона "труба-фильтр" не поможет в тестировании неизвестных требований.

...