..
Автотесты
- CI - начинать проект нужно с того, что настраивается сборка
- краткость, читаемость, декларативность
- тесты - это тоже код и к нему применимы все критерии качества, что и к остальному коду
- отличия кода и тестов? в них них поведения
- Даже, если тесты для кода не пишутся, проектировать код следует так, чтобы его можно было протестировать при необходимости.
- не загружай лишний зависимости
- do not use verifying double
- загружать только необходимов
- rails_helper, spec_helper
- Arrange Act Assert
- expect to receive
- скорость
- эффективность запуска
- из редактора
- запуск последних тестов
- запуск только упавших
- предсказуемость
- flakky
- random seed
- faker
- date/time, timecop
- чистое состояние, до и после
- предположения
- expected_result
- не требовать лишнего
- порядок важен или нет?
- как найти тест, который нужно исправить
- что делать, если flakky не удается починить?
- выделение в отдельную группу
- rerun
- allow failure?
- параллельное выполнение
- выделение групп
- максимальный уровень изолированности, чистая архитектура
- пирамида тестирования
- тест должен общаться с кодом на том же уровне абстракции, использовать API кода
- нужно знать инструменты: чтобы писать тесты эффективно, хорошо, быстро (иначе не хочется - история)
- oneliners, less comments
- контекст описан в самом тесте, поэтому не fixtures
- TDD? писать тесты в начале, а не в конце. Прагматичный подход
- ключи запуска: fail-fast, only-failures, next failing, …
- subject as action