Озадачился последнее время качеством своих тестов. Я пишу тесты. Модульные и функциональные. Пишу их много - примерно треть кода это тесты. Покрытие довольно хорошее и тесты реально помогают.
Но я чувствую, что говно мои тесты. У меня вызывает трудности ряд моментов. Например тестирование AR моделей, интеграционные тесты для приложений, чья архитектура завязана на очередях, тестирование хитрожопых событийно-ориентированых систем. Тесты есть, но они не стабильны и их сложно сопровождать. Много времени уходит на них.
Мне нужна литература (книги, статьи, примеры кода) откуда можно почерпнуть более детальное и глубокое понимание того, какими должны быть тесты. Мне не нежны публикации, рассказывающие о том, что такое TDD, как полезны тесты, и как тестоировать функцию x+y. Нужны best practice. Буду благодарен всем, кто поделится опытом.
Интересует теория в общем, но в первую очередь то, что касается php кода.
Как не смешно звучит, сам я эти книжки не читал, но, когда собирал подобную же вашей коллекцию, заметил, что их во многих местах рекомендовали безотносительно языка: The-Art-Unit-Testing-examples xUnit-Test-Patterns-Refactoring-Code
ActiveRecord нормально тестируется с помощью частичных моков. Даже запросы нормально тестируются, если их выносить в отдельный класс, а ActiveRecord::find() использовать только как фасад для получения инстанса нужно класса с запросами.
П.С. Поделитесь потом что нашли и что реально оказалось полезным.
П.П.С. А вот еще книжка хорошая The Clean Architecture in PHP. Она вроде бы не сложная, но очень хорошо описывает как можно IoC использовать, а это прямой путь к хорошим тестам.
Real-World Solutions for Developing High-Quality PHP Frameworks and Applications. Один из авторов - создатель PHPUnit. Книга местами устарела, но кое-что, возможно, почерпнёте.