У меня есть файл контекста БД Entity Framework.Как мне настроить DBContext и запускать SetUp каждый раз (чтобы очистить заполненную базу данных) перед запуском теста?Он не может видеть dbcontext в тестах NUnit.
Файл контекста DB электроники
public partial class ElectronicsContext : DbContext
{
public ElectronicsContext()
{
}
public ElectronicsContext(DbContextOptions<ElectronicsContext> options)
: base(options)
{
}
public virtual DbSet<Product> Product { get; set; }
public virtual DbSet<ProductCategory> ProductCategory { get; set; }
Настройка Nunit
public class TestClass
{
[SetUp]
public void TestProducts()
{
var options = new DbContextOptionsBuilder<ElectronicsContext>()
.UseInMemoryDatabase(databaseName: "Products Test")
.Options;
using (var context = new ElectronicsContext(options))
{
context.Product.Add(new Product { ProductId = 1, ProductName = "TV", ProductDescription = "TV testing", ImageLocation = "test" , ProductCategoryId = 2});
context.SaveChanges();
}
}
Сообщение об ошибке здесь
The name 'context' does not exist in the current context
[Test]
public void TestProductRepository()
{
ProductRepository productRepository = new ProductRepository(context);
Assert.AreEqual("TV", productRepository.GetById(1).ProductName);
}
}
Альтернативная идея для SetUp также не работала:
[SetUp]
public void TestProducts()
{
var options = new DbContextOptionsBuilder<ElectronicsContext>()
.UseInMemoryDatabase(databaseName: "Products Test")
.Options;
ElectronicsContext context = new ElectronicsContext(options);