После прошлого сообщения мы знаем, как экспортировать схему для тестирования SQLite im-memory. Ок. Но как работать с сессиями? Давайте посмотрим на интерфейс SQLiteInMemorySchemaExport.
/// <summary>/// Returns session associated with current SQLite connection/// </summary>public ISession CurrentSession { get;}/// <summary>/// Returns stateless session associated with current SQLite connection/// </summary>public IStatelessSession CurrentStatelessSession {get;}/// <summary>/// Creates new session associated with current SQLite connection/// </summary>public ISession OpenSession()/// <summary>/// Creates new stateless session associated with current SQLite connection/// </summary>public IStatelessSession OpenStatelessSession()
Полагаю, сейчас у читателя возник вопрос: есть CurrentSession и OpenSession() – что из них следует использовать? Ответ: в большинстве случаев CurrentSession. Но если вы тестируете компонент, который по какой-либо причине вызывает Dispose() на сессии – то передавать ему CurrentSession нельзя, т.к. никто больше до нее не доберётся. В таких случаях компоненту стоит передать созданную методом OpenSession() сессию. И CurrentSession и все созданные OpenSession() получают одно и тоже соединение с БД, поэтому потери данных не произойдёт.
Удачных тестов с Enhima!
Комментариев нет:
Отправить комментарий