Я и его коллега спорим. Мы находимся в потрясающем унаследованном проекте и постепенно добавляем приемочные тесты. Он считает, что мы должны выполнять работу в графическом интерфейсе пользователя, а затем использовать низкоуровневую библиотеку для непосредственного запроса к базе данных, чтобы получить «сквозной» тест, как он его выразил.
Мы используем NHibernate, и я рекомендую использовать gui / watin, а затем эти объекты nhibernate для выполнения утверждений в приемочном тестировании. Ему не нравится зависимость NHibernate в тесте. Я утверждал, что у нас есть / должны быть интеграционные тесты с объектами NHibernate, чтобы убедиться, что они работают с БД так, как мы намереваемся, и в этом случае нет недостатка в использовании их в приемочном тесте для подтверждения правильности работы. Я также думаю, что его низкоуровневая зависимость от SQL сделает тесты хрупкими и дублирует бизнес-логику во многих случаях.
Интеграционное тестирование в нашем магазине в основном означает, что это отдельный компонент с зависимостью, например, fileRepository / FileSystem Domain-NhibernateObject / База данных. Приемочное тестирование означает вход через GUI. Единица означает, что все зависимости могут / могут быть смоделированы / заглушены, и у вас есть чистый тест в памяти, и только тестируемый метод фактически выполняет какую-либо реальную работу. Дайте мне знать, если моя защита выключена.
В любом случае, любые статьи / документы / пергаменты с мнениями по этому вопросу, на которые вы можете указать мне, будут оценены.