Чтобы запустить модульное тестирование в наших классах репозиториев, у нас была база данных в памяти, которая создавалась в начале теста и удалялась в конце части using
.Мы делаем это как на SQL Server (с Effort), так и на MongoDb (пользовательская библиотека).Мы планируем перевести нашу базу данных mongodb в azure cosmosdb, и я ищу способ запуска базы данных cosmosdb в оперативной памяти в моей среде разработки и агентах сборки VSTS.
Чтение следующего документа Я вижу, что есть способ установить эмулятор azure cosmosdb в качестве док-контейнера.И этот документ говорит о запуске док-контейнера с кодом C #.
Вот пример теста с использованием базы данных mongodb в памяти:
[TestMethod]
[ExpectedException(typeof(ZonierListNullOrEmptyException))]
public async Task ShouldThrowExceptionWhenNoDataSent()
{
var databaseName = "tests";
var mongoRepositoryConfigurationManager = new Mock<IMongoRepositoryConfigurationManager>();
var empltyZonierList = new List<Zonier>();
mongoRepositoryConfigurationManager.Setup(x => x.MongoDatabaseName).Returns(databaseName);
using (var embedded = new EmbeddedMongoDbServer())
{
mongoRepositoryConfigurationManager.Setup(x => x.MongoConnection).Returns(string.Format("mongodb://{0}", embedded.Settings.Server.ToString()));
IZonierRepository zonierRepository = new ZonierRepository(mongoRepositoryConfigurationManager.Object);
await zonierRepository.InsertZonierDataAsync(null);
await zonierRepository.InsertZonierDataAsync(empltyZonierList);
}
}
Doкто-то уже добился чего-то подобного с докер-контейнером?Если у вас есть документ, касающийся моих потребностей, поделитесь им.