#sqlite #unit-testing #entity-framework-core
#sqlite #модульное тестирование #entity-framework-core
Вопрос:
У меня есть проект, который в настоящее время использует общий репозиторий.
Я хочу переписать его и заставить его напрямую использовать контекст EF.
Для модульных тестов я хочу использовать SQLite. В приведенном здесь примере — я вижу, как предоставить DbContextOptions. Но как я могу предоставить второй параметр — IOptions, через SQLite?
public ApplicationDbContext(
DbContextOptions options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
{
}
public class SqliteInMemoryItemsControllerTest : ItemsControllerTest, IDisposable
{
private readonly DbConnection _connection;
public SqliteInMemoryItemsControllerTest()
: base(
new DbContextOptionsBuilder<ItemsContext>()
.UseSqlite(CreateInMemoryDatabase())
.Options)
{
_connection = RelationalOptionsExtension.Extract(ContextOptions).Connection;
}
private static DbConnection CreateInMemoryDatabase()
{
var connection = new SqliteConnection("Filename=:memory:");
connection.Open();
return connection;
}
public void Dispose() => _connection.Dispose();
}