1:
Как я могу проверить свой код (TDD) для
стандартные операции CRUD без
имея базу данных.
Я вижу, что запись помечена с помощью nunit, поэтому я предполагаю контекст .net. Учитывая это, я лично в течение нескольких месяцев успешно использовал SQLite в качестве базы данных в памяти в проекте (вместе с NHibernate и обычными DDD-шаблонами).
2:
Можно ли достичь такого уровня
изоляции, так что мой код
не зависит от базы данных.
Я не думаю, что можно написать полностью независимый от базы данных код, но NHibernate занимает у меня 95% пути (но это число сильно зависит от вашего конкретного контекста).
Кроме того, с хорошими схемами доступа к данным, например, «Repository» и «Unit of Work», остальная часть кода может быть сделана на 100% независимой от базы данных. То же самое относится и к другим источникам данных, например, Файлы CSV и XML.