База данных семян для UnitTest (Nunit, C#) - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь заполнить базу данных в моей функции SetUp моего Nunit-test-class.

В настоящее время база данных заполняется при выполнении ASP. NET Core Main-Method. Теперь я хочу передать этот процесс в свой тестовый класс, поскольку мне нужна только БД для моих тестов, и я хочу разрушить ее после выполнения всех тестов.

  public class Program
    {
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                try
                {
                    DBInitialize.Initialize(services);
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService<ILogger<Program>>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }
}

Но я не знаю, как выполнить метод DBInitialize.Initialze в моем SetUp-Method, поскольку мне нужно предоставить аргумент для метода, и я полностью застрял.

public class TestsDataRetrieve
    {

        [OneTimeSetUp] //OneTimeSetUp
        public void Setup()
        {
           //execute Initialization
        }


        [Test] . . . some tests
    }

Не могли бы вы дать мне подсказку или какой-нибудь учебник, который поможет?

...