2013-04-05 2 views
1

Мы используем архитектуру n-уровня в нашем приложении. Предположим, мы используем трехслойное приложение и используем шаблон MVC для уровня представления, какой слой должен тестировать? Как найти контрольную точку в моем приложении?Какой слой должен тестироваться в n-уровневой архитектуре

  1. Презентационный уровень?
  2. Business Layer
  3. Уровень данных
  4. Все они?
+0

Что не следует проверять: http://stackoverflow.com/questions/1084336/what-should-not-be-unit-tested –

ответ

2

Испытайте только слои, которые вы хотите быть уверены в работе. Все три из вышеперечисленных, похоже, были важны для работы. Вы не хотите удалять их.

Попытка найти контрольные точки в существующем программном обеспечении, где он не был предназначен, может стать проблемой. Есть хорошая книга, Working Effectively with Legacy Code, где наследие определяется как код без тестов, что говорит об этой проблеме. В принципе, если вы не создаете для тестирования, то это может быть трудно обучить его, вам, вероятно, придется реорганизовать.

Трюк собирается добавить тестовую инфраструктуру к коду: mocks, stubs и другие тестовые компоненты, чтобы вы могли изолировать только тестируемые биты. Это полезно при тестировании БД, вы действительно не хотите запускать реальный запрос, это займет слишком много времени, и вы хотите, чтобы тесты были FAST. Инъекция зависимостей может быть полезна для более статичных языков, таких как C++/C и Java.

1

Что такое «единица» в контексте модульного тестирования? Это то, что вы идентифицируете как единицу, как самую маленькую тестируемую часть вашего кода.

В наши дни большинство людей выбирают класс или метод в качестве своего устройства. Если вы сделаете то же самое, все ваши слои будут содержать единицы, которые вы можете тестировать на единицу, поэтому ответ на ваш вопрос - проверить все.

Смежные вопросы