вторник, 12 июня 2012 г.

UnitTest: Что такое UnitTest?


Unit в UnitTest - это unit of work. То есть a use case, вызванный public method-ом и закончившийся result-ом. А result-ом может быть:
  1. Возвращаемое значение или Exception.
  2. Заметные изменения в системе. Заметные - значит, система после них работает по-другому. Например, добавление пользователя - это заметное изменение, потому что теперь под ним можно заходить.
  3. Вызов внешней системы, которую мы не можем контролировать во время теста. Например, файловая система, сеть, user threads, или любая другая зависимость, которую мы не можем контролировать и которая выполняется медленно.
Для 3-его типа нужно использовать mock-объекты. Для 1-2 - порвать все зависимости и проверять возвращаемое значение или состояние системы.

Вроде бы просто. Тем не менее, я понял, что отчего-то был уверен, что UnitTest-у и случая 1 достаточно. Хотя уже созданы обёртки для эмуляции файловой системы. Или вот эксперименты над Python

Комментариев нет:

Отправить комментарий