У меня есть следующий код юнит-теста.
public class NewTest
{
private ApplicationContext context;
private IMigrator migrator;
[SetUp]
public void Setup()
{
IConfiguration configuration =
new ConfigurationBuilder().AddJsonFile("appsettings.Tests.json", false).Build();
context = new ApplicationContext(configuration);
migrator = context.GetService<IMigrator>();
migrator.Migrate();
}
[Test]
public void Can_Create_Workspace()
{
// как то удалить абсолютно все таблицы из тестовой базы
// выполнить миграции
migrator.Migrate();
// далее код теста
}
}
Для моих юнит-тестов я планирую развернуть в докере отдельную базу. В методе Setup
происходит настройка: создается подключение к базе, выполняются миграции. Далее план такой. В каждом тесте мне хотелось бы удалить все таблицы из базы, как будто бы я еще не проводил ни одной миграции и у меня пустая база. Далее, в каждом тесте я выполняю миграции и работаю с базой. То есть я проверяю одновременно, что у меня работает и моя бизнес-логика, и репозитории (хранение).
Примерно так организованы юнит-тесты в php фреймворке Laravel. Я нахожу это удобным и хотел бы повторить.
Проблема только в том, что я не нашел, как удалить абсолютно все таблицы из базы (включая таблицу списка миграций __EFMigrationsHistory
). Все найденные мною способы основаны на перечислении существующих таблиц в прямом SQL запросе. Это создает ограничения: привязку к конкретной СУБД (диалект SQL) и привязку к конкретному количеству таблиц (если добавится еще одна, то придется править все тесты). Также я находил решения, где люди предлагают удалять сущности через api Entity. Но тогда останется __EFMigrationsHistory
и в следующем тесте миграции не пройдут.
Было бы здорово, если было бы что-то типа
`context.DropAllTables()`
Заранее благодарен за любую помощь!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я создаю во вью ItemsControl, который содержит в себе структуру UniformGridItemTemplate у него - набор кнопок, которые генерируются на основе ObservableCollection (так...
Всем доброго времени сутокПодскажите пожалуйста, почему используя код приведенный ниже (Перерисовка изображений формата PCX в Png) некоторые...
Я делаю приложение с WPFВ форме есть кнопка для запуска exe файла, который меняет фотографию photo