=ARRAYFORMULA(IF(A2:A;
MMULT(TRANSPOSE((ROW(INDIRECT("B2:B"&COUNTA(A1:A)))<=
TRANSPOSE( ROW(INDIRECT("B2:B"&COUNTA(A1:A)))))*
{B2; TRANSPOSE(SPLIT(REPT(J5*-1&"♦"; COUNTA(A3:A)); "♦"))});
SIGN({B2; TRANSPOSE(SPLIT(REPT(J5*-1&"♦"; COUNTA(A3:A)); "♦"))})^2); IFERROR(1/0)))
Абсолютно. Идея модульных тестов состоит в том, чтобы гарантировать, чтобы изменения не влияли на поведение неизвестными способами. Вы могли бы сэкономить некоторое время пишущий тест для getFoo()
. Если Вы изменяете тип Foo
чтобы быть чем-то немного более сложным затем, Вы могли легко забыть тестировать средство доступа. Если Вы подвергаете сомнению, необходимо ли записать тест или нет, Вы - более обеспеченная запись его.
По моему скромному мнению, если Вы думаете о пропуске добавляющих тестов для метода, Вы могли бы хотеть спросить себя, если метод необходим или нет. В интересе полного раскрытия я - один из тех людей, который только добавляет метод set или метод считывания, когда это доказано необходимым. Вы были бы удивлены, как часто Вам действительно не нужен доступ к определенному участнику после конструкции или когда Вы только хотите предоставить доступ к результату некоторого вычисления, которое действительно зависит от участника. Но я отступаю.
Хорошая молитва должна всегда добавлять тесты. Если Вы не думаете, что Вам нужен тот, потому что метод тривиален, рассмотрите удаление метода вместо этого. Я понимаю, что общий совет состоит в том, что это должно хорошо пропустить тесты для "тривиальных" методов, но необходимо спросить себя, если метод даже необходим. При пропуске теста Вы говорите, что метод всегда будет тривиален. Помните, что модульные тесты также функционируют как документацию намерения и предлагаемый контракт. Следовательно тесты тривиального метода указывают, что метод действительно предназначен, чтобы быть тривиальным.
Я был бы только модульный тест их, если они действительно больше, чем устанавливают или возвращают переменную. В какой-то момент необходимо положить, что компилятор собирается генерировать правильную программу для Вас.
Мои критерии тестирования то, что каждая часть кода, содержащего условную логику (в то время как, если, поскольку, и т.д.) быть протестированными. Если бы средства доступа являются простыми методами считывания/методами set, я сказал бы, что тестирование их тратит впустую Ваше время.
Вы не имеете к тесту записи на свойства, которые не содержат логики.
Единственное объяснение для тестирования простых свойств должно повысить тестовое покрытие - но это просто глупо.
Я думаю, что разумно сэкономить время и не модульные тесты записи, что Вы не думаете, будет особенно полезно.
В то время как 100%-е тестовое покрытие является замечательным идеалом, в какой-то момент Вы сталкиваетесь с убывающей доходностью, где время, Вы потратили запись теста, не стоит преимущества, Вы выходите из наличия его.
Можно всегда возвращаться и добавлять больше модульных тестов позже при нахождении ситуаций, где Вы решаете, что они были бы полезны.
Если Ваш IDE генерирует и справляется с модификациями для членских средств доступа---Вы, привычка' делает что-либо, что специальный---, затем тестирующий их действительно, не важен; типы совпадут, именование будет шаблоном и т.д.
Я думаю, что большинство людей скажет, что тестирование их является пустой тратой Вашего времени. В 99%-м случае, который верен. Если бы существует ошибка в средстве доступа, и остальная часть Ваших модульных тестов не ловят его косвенно затем, я начал бы подвергать сомнению, почему то свойство там вообще.
С другой стороны, тестирование средства доступа берет меньше ввода это, задавая этот вопрос :)
Лично я тестирую их. Но это - серая область для меня, и я не нажимаю на других людей в своей группе для тестирования их, пока у них есть достаточное покрытие вокруг функциональности класса.
Никакой-friggin путь! Пустая трата времени!
Даже Bob Martin See ТАК подкаст 41, дедушка Гибких говорит "нет".
Обычно, когда я рассматриваю модульные тесты записи, я спрашиваю меня следующее:
Раз так затем я включал бы модульный тест. На всякий случай, потому что, если в какой-то момент в будущем Вы решаете реализовать ленивую загрузку или что-то более усовершенствованное, чем простое, получают/устанавливают, затем необходимо будет удостовериться, что это работает правильно.
Лучшая практика для методов считывания не должна позволять им выдавать исключения вообще. Метод set является другим вопросом. Однако так или иначе, если Вы решаете, что свойство могло бы возможно выдать исключение, затем запишите модульный тест на то свойство, и для успешного доступа, и для того, чтобы целеустремленно генерировать исключение.
Кроме этого я не обеспокоился бы, как Dan указал, "В какой-то момент, необходимо положить, что компилятор собирается генерировать правильную программу для Вас".
Наша компания имеет и виды людей и мнения. Я склоняюсь к не тестированию их а именно, как они обычно
Существуют исключения хотя:
Оба этих случая могли бы заставить меня тестировать их. Первое еще одно, чем второе.
Мне нравится иметь модульные тесты на них. Если средство доступа делает какой-либо вид работы, кроме того, просто возвращают поле затем, что код будет протестирован соответственно.
Даже если данное средство доступа ничего не делает кроме возврата поле, это могло бы быть изменено позже, чтобы сделать что-то дополнительное.
Кроме того, это - простой способ к количеству запущенных тестов, который многие менеджеры как.