В дополнение к другим ответам структура может (но обычно не имеет) иметь виртуальные функции, и в этом случае размер структуры также будет содержать пространство для vtbl.
Вы не должны тесты записи который:
То же касается объектов.NET, которые только имеют свойства (иногда названный 'Информационными' объектами).
В идеальном мире у Вас было бы 100%-е тестовое покрытие, но на практике это не собирается происходить. Поэтому потратьте деньги клиента, где они добавят большую часть преимущества т.е. пишущих тестов для классов со сложным состоянием и поведением.
Если Ваш JavaBean становится более интересным, можно, конечно, добавить тестовый сценарий позже. Одна из типичных проблем, связанных с Поблочным тестированием/, TDD является ошибочным мнением, что все должно быть идеальным первым разом.
Я думаю, что это - один из тех вопросов, которые все задают себе (самостоятельно).
Но рассмотрите это: внутренняя логика средств доступа очень проста теперь, но она может измениться в будущем, и - который намного более важен - Вы будете не стесняться изменять ее на то, что Вы хотите, если у Вас есть тесты для методов. Так, Вы получаете свободу и уверенность посредством нескольких тестовых сценариев. Походит на много, ха?
Другое эмпирическое правило (подобный тому, что сказали другие) является "тестом что-либо, что могло возможно повредиться". Мне, который исключает автоматически сгенерированный метод считывания и методы set, но включает рукописные, которые содержат некоторую логику.
Если это не стоит тестировать, это не стоит писать.
Это не всегда означает, что Вы должны тесты записи. Иногда это означает, что необходимо удалить код. Вам нужны эти бобы? Они на самом деле делают что-либо важное? При необходимости в них Вы должны тесты записи. В противном случае удалите код и живой более счастливая жизнь, зная, что у Вас есть меньше для поддержания.
Как может Вы надежно рефакторинг непротестированного кода? Что произойдет, когда Ваш боб pojo изменится, если у Вас нет тестов? Вы создаете Анемичную Модель предметной области?
Только необходимо протестировать материал, что Вы хотите работать правильно.
(Извините тому, кто бы ни я украл ту кавычку из),
если бы это - просто метод считывания/метод set, ничего не изменяя на значения, я сказал бы, что нет никакой потребности в тестировании. Если это действительно сделает некоторую логику, то несколько простых модульных тестов обеспечат некоторую безопасность.
Необходимо протестировать вещи, которые имеют некоторое значение. Методы считывания и методы set обычно не содержат логики и просто используются в Java из-за отсутствия свойств. Я думаю, что тестирование их так же глупо как проверяющий, что Java действительно возвращает значение каждый раз, когда Вы оцениваете "a.x".
Если средство доступа действительно имеет логику Вам решать threshhold. Если Ваша команда является lazish., лучше тестировать всю логику. Если это более дисциплинируется, лучше найти отношение, которое не заставляет Вас записать слишком много шаблонных тестов.
Как Maxim, уже сказанный: наличие тестов не добавит дополнительную функциональность к Вашему приложению, но позволит Вам внести изменения с большей уверенностью. Для определения, какие классы/методы должны быть протестированной единицей я всегда задаю мне два вопроса:
Если с обоими вопросами отвечают да, модульный тест необходим.
По-моему, цель записать модульный тест тестирует бизнес-логику единицы в тесте. Поэтому, если нет никакой бизнес-логики (например, когда метод считывания просто возвращает значение, или метод set устанавливает его), затем нет никакого смысла в записи теста. Если, однако, существует некоторая логика (метод считывания изменяет данные в некотором роде прежде, чем возвратить ее), затем да, у Вас должен быть модульный тест. Как правило я полагаю, что каждый не должен тесты записи на бобы, которые не содержат бизнес-логики.
Если это имеет внешний интерфейс и содержит код, который написал человек (в противоположность тому, чтобы быть автоматически сгенерированным IDE или компилятором), то это должно определенно быть протестировано.
Если один или оба из тех условий не содержит, то это - что-то вроде серой области и сводится к большему количеству "пояса и подтяжек" - вопрос о типе, как осторожный Вы чувствуете потребность быть.