NHibernate Override ISession для подделки базы данных во время тестирования
Я работаю над проектом, который имеет более 2000 интеграционных тестов, которые охватывают базу данных. Я хочу ускорить процесс, поэтому я подумал, почему бы не подделать базу данных.
Мы используем Fluent NHibernate в качестве нашего ORM, поэтому, вероятно, у меня возникают такие проблемы. Мы уже внедрили эту концепцию в программу, которая не использует NHibernate, а выполняет базовые операции CRUD.
В принципе, при любой операции CRUD я хотел бы сохранить объект в памяти, чтобы составить список словарей. Это ускорит процесс наших тестов, что, надеюсь, сократит время сборки. Не говоря уже о крутом факторе.
Я рассмотрел наличие двух отдельных сессий и использование фабрики сеансов одного или другого, но мне пришлось бы реализовать много методов / свойств, которые мне действительно безразличны.
Я также подумывал об использовании промежуточного класса в классе, который сам переводит, но это, вероятно, будет включать в себя изменение МНОГО существующего кода. Я стараюсь максимально ограничить влияние на остальную часть проекта, чтобы регрессионное тестирование не было ОГРОМНЫМ фактором.
Пожалуйста, дайте мне знать о любых других предложениях, которые у кого-либо есть!
Спасибо!
1 ответ
Используйте базу данных SQLite в памяти. Вот сообщение в блоге, которое первоначально показало мне, как...
http://jasondentler.com/blog/2009/08/nhibernate-unit-testing-with-sqlite-in-memory-db/