Существует так записан о поблочном тестировании, но я едва нашел какие-либо книги/блоги об интеграционном тестировании? Вы могли предложить, чтобы я что-то читал по этой теме?
Какие тесты записать при выполнении интеграционного тестирования? что делает хороший интеграционный тест? и т.д. и т.д.
Спасибо
J.B. О них писал Райнсбергер. Вот ссылка на статью InfoQ с дополнительной информацией.
http://www.infoq.com/news/2009/04/jbrains-integration-test-scam
Все, что написано Кентом Беком , отцом JUnit и SUnit, является отличным местом для начала (для модульных тестов / написания тестов В основном). Я предполагаю, что вы не имеете в виду «непрерывную интеграцию», которая представляет собой процессно-ориентированный подход к сборке (очень круто, когда он работает).
По моему собственному опыту, интеграционные тесты очень похожи на обычные модульные тесты, просто на более высоком уровне. Больше фиктивных объектов. Больше инициализации состояния.
Я считаю, что интеграционные тесты подобны луку. У них есть слои.
Некоторые люди предпочитают «интегрировать» все свои компоненты и тестировать «весь» продукт как тест на «интеграцию» . Вы, конечно, можете это сделать, но я предпочитаю более постепенный подход. Если вы начнете с низкого уровня, а затем продолжите тестирование на более высоких уровнях композиции, вы достигнете интеграционного тестирования.
Может быть, обычно труднее найти информацию об интеграционном тестировании, потому что оно гораздо более специфично для реального приложения и его использования в бизнесе. Тем не менее, вот мой взгляд на это.
То, что применимо к модульным тестам, также применимо к интеграционным тестам: модули должны иметь простой способ имитировать свои внешние входные данные (файлы, БД, время ...), чтобы их можно было тестировать вместе с другими модульными тестами. .
Но что я нашел чрезвычайно полезным, по крайней мере для приложений, ориентированных на данные, так это возможность создать «консольную» версию приложения, которая принимает входные файлы, полностью определяющие его состояние (без зависимостей от баз данных, сети ресурсы ...) и выводит результат в виде другого файла. Затем можно поддерживать пары файлов входных данных / ожидаемых результатов и, например, тестировать регрессии как часть ночных сборок. Наличие этой версии консоли позволяет упростить создание сценариев и невероятно упрощает отладку, поскольку можно положиться на очень стабильную среду, в которой легко воспроизводить ошибки и запускать отладчик.