Цитата:
Если делить программистов на тех, кто без юнит тестов жить не может, и тех, кому они вообще не нужны, то я второй вариант.
|
Это как героин. Стоит один раз увлечься и...
Но вообще говоря, здесь уместней сравнение с ООП при AS2 – сначала непонятно, странно и хочется написать в процедурном стиле (или смешать и то, и то), но после осознания голова не работает иначе. Сейчас перед тем как написать
любой код я первым делом думаю, как написать для него разные тесты на разных уровнях. Доходит вплоть до попиксельных сравнений картинок, если манипулирую ими.
Цитата:
Нет. А где такая кнопочка есть?
|
В контексте сбора приложений, грубо говоря, она должна быть всегда. Внешний консультант при заходе на проект с целью разгрести кучу мусора первым делом будет делать именно то, чтобы проект запустился с одной кнопки, или, максимум, с строго предетерминированным порядком действий (который, кстати, можно запихнуть в скрипт и вот она, одна кнопка!). Общих решений подходящих везде не существует, но для каждого отдельного проекта сборка в одну кнопку просто essential. Сравни какой-нибудь MEAN Stack и Hadoop в простоте сборке. Они вообще для разного, но со вторым можно умом тронутся пока он просто встанет. (на всякий упомяну, что мой скоуп знаний о Hadoop достаточно старый – надеюсь, многое изменилось).
Цитата:
На хабре видел статью, где чел делил всех людей по использованию ими тестов. Нет тестов - давай до свидания.
|
В целом, так и есть. Писать тесты дешевле и это
ускоряет разработку в long-term плане, чем иметь много QA-мартышек, что будут везде искать регрессии.
Цитата:
А вот в рамках большого проекта, сколько примерно приходиться делать тестов?
|
Речь про абсолютное число? Это флуктирующее значение и тест-тесту рознь. один e2e тест даёт большее покрытие кода, чем 3 unit, но они тестируют разные вещи. Один тест может прогонять несколько ассертов, в то время как этот тест можно разбить на несколько мелких по одному ассерту (понятность того, что тестируем против скорости выполнения тестов).
Самое примитивное - метрика по покрытым линиям кода (LOC), но 100% покрытие гарантирует только что на каждой ветви кода существует сценарий, при котором код не падает. Однако, имея 100% LOC Coverage и контроллируя, что тесты делают то что нужно (и в нужных пропорциях, я бы сказал, что 65% Unit, 25% Integration и 10% e2e – знаю я ковбоев, что тестируют только через e2e, но получают неплохую метрику) можно очень радовать себя простотой разработки и рефактора, и конечного пользователя стабильным приложением.
Цитата:
Ну обычно тестируется всё публичное API моделей.
|
Что в целом составляет 100% бизнес логики :D
Цитата:
Ну это точно не для инди проектов.
|
Нет, это для любых проектов.