Как добавить модульные тесты с помощью SQLite InMemory с помощью IOptions operationalStoreOptions?

#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();
 

}