Скажіть, у вас є тести на два методи класу. Перший метод збирає дані з іншого ярусу і розміщує їх у якомусь сховищі, незалежному від часу виконання (наприклад, таблиці SQL), тому всі дані, оброблені цим тестом, жорстко вводяться в тест. Другий метод відповідає за взяття даних, звідки його залишив перший метод, і певним чином їх перетворення (розрахунок, переміщення певних частин в інше місце тощо).
Тепер цей другий метод міг би мати жорсткі кодовані введення, як перший, або можна припустити, що два тести будуть виконуватися послідовно, і він може підібрати там, де зупинився перший тест, беручи дані, які були дійсно збережені першим тестом.
Якщо ви пішли з другим варіантом, ви б дійсно гарно подумали, що ці два методи добре поєднуються, однак, якщо перший тест не вдався, усі тести після нього вийдуть з ладу, позбавивши тестування користі, щоб швидше виділити помилки.
Якби ви пішли з першим варіантом, кожен метод був би ізольований і перевірений незалежно, але ви ніколи не дізнаєтесь, що вони дійсно можуть працювати разом разом.
Який тут кращий варіант? Чи існує якась альтернатива, як проведення єдиного тесту для кожного ізольованого методу з жорстким кодуванням, а потім більш великих тестів, що містять обидва методи в одному?