Понятие модульного теста.
От: Аноним  
Дата: 04.02.12 05:35
Оценка:
Что значит "модульный тест"? Означает ли это, что при тестировании класса код его зависимостей вообще не должен исполняться?
Re: Понятие модульного теста.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 04.02.12 06:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что значит "модульный тест"?

Модульный тест означает не совсем правильный перевод слова unit в контексте тестирования. Здесь должна быть "единица", а не "модуль". Ничего страшного, если под модулем понимать некоторую неделимую сущность, а не библиотеку компонент.

А>Означает ли это, что при тестировании класса код его зависимостей вообще не должен исполняться?

В идеале — да, ведь мы тестируем именно класс, а не то, от чего он зависит. С другой стороны, лего обнаружить сценарии, при которых модуль (единица кода) ничего не значит без зависимостей.
Например, при ответственности кода "записать данные в БД", необходимо тестировать код вместе с вызовом зависимостей. Можно, конечно, тестировать корректность построения запроса в БД, но тогда и ответственность кода меняется, тест может быть не полным, т.к. корректный запрос еще не гарантирует попадания информации в БД.
Re: Понятие модульного теста.
От: okman Беларусь https://searchinform.ru/
Дата: 04.02.12 05:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что значит "модульный тест"? Означает ли это, что при тестировании класса код его зависимостей вообще не должен исполняться?


Мне нравится определение отсюда:
http://msdn.microsoft.com/en-us/library/aa292197(v=vs.71).aspx
Re[2]: Понятие модульного теста.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 04.02.12 05:19
Оценка:
Здравствуйте, okman, Вы писали:

O>Мне нравится определение отсюда:

O>http://msdn.microsoft.com/en-us/library/aa292197(v=vs.71).aspx

Кстати, оттуда

Each unit is tested separately before integrating them into modules

Это подтверждает то что слово модуль является некорректным переводом, т.к. unit и module используется в одном контексте с разными смыслами.
Re[2]: Понятие модульного теста.
От: Аноним  
Дата: 04.02.12 05:24
Оценка:
Здравствуйте, samius, Вы писали:
S>В идеале — да, ведь мы тестируем именно класс, а не то, от чего он зависит. С другой стороны, лего обнаружить сценарии, при которых модуль (единица кода) ничего не значит без зависимостей.

Вот у меня в проекте довольно много классов состояние которых состоит из состояния его зависимостей. При модульном тестировании и использовании заглушек, тесты теряют свою информативность, они не показывают общий смысл взаимодействия класса и его зависимостей. Просто происходит проверка правильности вызовов методов других классов. Вот это меня и беспокоит.
Re[3]: Понятие модульного теста.
От: samius Япония http://sams-tricks.blogspot.com
Дата: 04.02.12 09:44
Оценка: +2
Здравствуйте, Аноним, Вы писали:

А>Вот у меня в проекте довольно много классов состояние которых состоит из состояния его зависимостей. При модульном тестировании и использовании заглушек, тесты теряют свою информативность, они не показывают общий смысл взаимодействия класса и его зависимостей. Просто происходит проверка правильности вызовов методов других классов. Вот это меня и беспокоит.


Это не должно беспокоить. Есть тесты модульные (unit), которые тестируют конкретную единицу кода, а есть тесты интеграционные, цель которых протестировать именно связки компонент, или модули в широком понимании. Здесь
Просто надо определитсья с тем, что именно тестируется, связка или конкретный кусок кода. И называть тесты, которые тестируют это что-то соответственно.
Т.е. даже если ваши интеграционные тесты запускаются по той же кнопке, которая предназначена для запуска unit-тестов, ничего страшного в этом нет. Просто вы говорите "мои интеграционные тесты запускаются этой кнопкой" и все.
Re[4]: Понятие модульного теста.
От: Аноним  
Дата: 04.02.12 10:12
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, Аноним, Вы писали:


А>>Вот у меня в проекте довольно много классов состояние которых состоит из состояния его зависимостей. При модульном тестировании и использовании заглушек, тесты теряют свою информативность, они не показывают общий смысл взаимодействия класса и его зависимостей. Просто происходит проверка правильности вызовов методов других классов. Вот это меня и беспокоит.


S>Это не должно беспокоить. Есть тесты модульные (unit), которые тестируют конкретную единицу кода, а есть тесты интеграционные, цель которых протестировать именно связки компонент, или модули в широком понимании. Здесь

S>Просто надо определитсья с тем, что именно тестируется, связка или конкретный кусок кода. И называть тесты, которые тестируют это что-то соответственно.
S>Т.е. даже если ваши интеграционные тесты запускаются по той же кнопке, которая предназначена для запуска unit-тестов, ничего страшного в этом нет. Просто вы говорите "мои интеграционные тесты запускаются этой кнопкой" и все.

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.