testing

4 posts

Я перестал копировать код в документацию, храня тесты, код и прозу в одном Markdown-файле

Literate programming поддерживает синхронизацию документации, тестов и реализации, делая Markdown-файл единственным источником правды. Вот как реализовать это тридцатью строками на Python.

Ваша документация, тесты и код — это три файла, которые плохо рассказывают одну и ту же историю. Вы обновляете сигнатуру функции в исходнике. Забываете про…

Ожидание race conditions — ужасная стратегия тестирования

Почему model checking превосходит дни продакшен-рантайма в поиске concurrency-багов и как применить его к собственному коду.

Ждать, пока race conditions проявятся в продакшене, — это не тестирование. Это надежда, замаскированная под добросовестность. Вы можете запускать приложение…

Ваши unit tests проходят, но данные всё равно исчезают

Mock-тесты базы данных проверяют синтаксис SQL, но не то, переживут ли строки сбои, конкурентные записи или несоответствие схемы. Вот как тестировать persistence по-настоящему.

Если вы используете mock для базы данных в тестах, вы проверяете то, что ваш repository layer вызывает правильные методы. Вы не проверяете то, что данные…

Тестирование Redux без утопания в мок-экшенах

Мокирование каждого экшена Redux превращает ваши тесты в валидатор ченджлога. Вот как тестировать стор с реальными переходами состояния.

Если вы когда-либо писали тест, который проверяет, что был вызван с точной структурой payload, вы написали тест, который ломается каждый раз, когда кто-то…