Реалистичные Фейковые Данные с Помощью Bogus. Окончание
Начало
Продолжение
Заполнение БД в памяти фиктивными данными
Используем Entity Framework для БД в памяти. Для этого нужно установить NuGet-пакет Microsoft.EntityFrameworkCore.InMemory.
Теперь добавим класс DbContext и зададим БД в памяти:
public class BooksDbContext : DbContext
{
public DbSet<Book> Books { get; set; }
protected override void
OnConfiguring(DbContextOptionsBuilder builder)
{
builder.UseInMemoryDatabase("BooksDatabase");
}
}
Теперь можно заполнить БД данными, сгенерированными Bogus, переопределив метод OnModelCreating:
protected override void
OnModelCreating(ModelBuilder mb)
{
base.OnModelCreating(mb);
var books =
BogusBookGenerator.GenerateBooks(15);
mb.Entity<Book>().HasData(books);
}
Здесь мы используем метод GenerateBooks, описанный во вчерашнем посте, и задаём полученный список книг в качестве содержимого набора данных Books.
Теперь можно прочитать данные из нашей БД:
using var ctx = new BooksDbContext();
ctx.Database.EnsureCreated();
var allBooks = await ctx.Books.ToListAsync();
var thrillers = ctx.Books
.Where(b => b.Genres.Contains(Genre.Thriller))
.ToList();
Изучите все потенциальные возможности Bogus здесь. Это поможет сделать ваши тесты и эксперименты осмысленными и более понятными.
Итого
Bogus — отличная библиотека для создания модульных и интеграционных тестов. Генерировать фиктивные данные может быть полезно и в других различных сценариях, например, для создания заглушки сервиса, заполнения пользовательского интерфейса реалистичными данными или опробования других инструментов и функций.
Источник: https://www.code4it.dev/blog/seed-inmemory-entityframework-bogus/