Объекты области и простой JavaBeans должны быть протестированной единицей?

В дополнение к другим ответам структура может (но обычно не имеет) иметь виртуальные функции, и в этом случае размер структуры также будет содержать пространство для vtbl.

11
задан Behrang 21 September 2008 в 16:46
поделиться

11 ответов

Вы не должны тесты записи который:

  • Протестируйте язык или IDE (т.е. автоматически сгенерированные методы считывания и методы set)
  • Не добавьте значение к своей тестовой обвязке и охладите свой пыл для Поблочного тестирования

То же касается объектов.NET, которые только имеют свойства (иногда названный 'Информационными' объектами).

В идеальном мире у Вас было бы 100%-е тестовое покрытие, но на практике это не собирается происходить. Поэтому потратьте деньги клиента, где они добавят большую часть преимущества т.е. пишущих тестов для классов со сложным состоянием и поведением.

Если Ваш JavaBean становится более интересным, можно, конечно, добавить тестовый сценарий позже. Одна из типичных проблем, связанных с Поблочным тестированием/, TDD является ошибочным мнением, что все должно быть идеальным первым разом.

23
ответ дан 3 December 2019 в 01:04
поделиться

Я думаю, что это - один из тех вопросов, которые все задают себе (самостоятельно).

Но рассмотрите это: внутренняя логика средств доступа очень проста теперь, но она может измениться в будущем, и - который намного более важен - Вы будете не стесняться изменять ее на то, что Вы хотите, если у Вас есть тесты для методов. Так, Вы получаете свободу и уверенность посредством нескольких тестовых сценариев. Походит на много, ха?

4
ответ дан 3 December 2019 в 01:04
поделиться

Другое эмпирическое правило (подобный тому, что сказали другие) является "тестом что-либо, что могло возможно повредиться". Мне, который исключает автоматически сгенерированный метод считывания и методы set, но включает рукописные, которые содержат некоторую логику.

3
ответ дан 3 December 2019 в 01:04
поделиться

Если это не стоит тестировать, это не стоит писать.

Это не всегда означает, что Вы должны тесты записи. Иногда это означает, что необходимо удалить код. Вам нужны эти бобы? Они на самом деле делают что-либо важное? При необходимости в них Вы должны тесты записи. В противном случае удалите код и живой более счастливая жизнь, зная, что у Вас есть меньше для поддержания.

6
ответ дан 3 December 2019 в 01:04
поделиться

Как может Вы надежно рефакторинг непротестированного кода? Что произойдет, когда Ваш боб pojo изменится, если у Вас нет тестов? Вы создаете Анемичную Модель предметной области?

3
ответ дан 3 December 2019 в 01:04
поделиться

Только необходимо протестировать материал, что Вы хотите работать правильно.

(Извините тому, кто бы ни я украл ту кавычку из),

2
ответ дан 3 December 2019 в 01:04
поделиться

если бы это - просто метод считывания/метод set, ничего не изменяя на значения, я сказал бы, что нет никакой потребности в тестировании. Если это действительно сделает некоторую логику, то несколько простых модульных тестов обеспечат некоторую безопасность.

1
ответ дан 3 December 2019 в 01:04
поделиться

Необходимо протестировать вещи, которые имеют некоторое значение. Методы считывания и методы set обычно не содержат логики и просто используются в Java из-за отсутствия свойств. Я думаю, что тестирование их так же глупо как проверяющий, что Java действительно возвращает значение каждый раз, когда Вы оцениваете "a.x".

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

2
ответ дан 3 December 2019 в 01:04
поделиться

Как Maxim, уже сказанный: наличие тестов не добавит дополнительную функциональность к Вашему приложению, но позволит Вам внести изменения с большей уверенностью. Для определения, какие классы/методы должны быть протестированной единицей я всегда задаю мне два вопроса:

  • эта часть кода импортируется относительно полной функциональности?
  • эта часть кода, вероятно, переключит время жизни этого applicaiton?

Если с обоими вопросами отвечают да, модульный тест необходим.

1
ответ дан 3 December 2019 в 01:04
поделиться

По-моему, цель записать модульный тест тестирует бизнес-логику единицы в тесте. Поэтому, если нет никакой бизнес-логики (например, когда метод считывания просто возвращает значение, или метод set устанавливает его), затем нет никакого смысла в записи теста. Если, однако, существует некоторая логика (метод считывания изменяет данные в некотором роде прежде, чем возвратить ее), затем да, у Вас должен быть модульный тест. Как правило я полагаю, что каждый не должен тесты записи на бобы, которые не содержат бизнес-логики.

1
ответ дан 3 December 2019 в 01:04
поделиться

Если это имеет внешний интерфейс и содержит код, который написал человек (в противоположность тому, чтобы быть автоматически сгенерированным IDE или компилятором), то это должно определенно быть протестировано.

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

1
ответ дан 3 December 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: