Я пытаюсь интегрировать тест моего приложения.Как протестировать действия базы данных в тесте интеграции ядра asp.net?
например, в моем AbController
У меня есть метод PostAb(AbDTO abDTO)
, и я хочу проверить, что вызов этого метода добавит abDTO в db.
теперь мой тест установки:
[SetUp]
public void SetUp()
{
_server = new TestServer(new WebHostBuilder()
.UseEnvironment("testing")
.UseStartup<Startup>());
_client = _server.CreateClient();
}
и мой тест должен выглядеть следующим образом:
[Test]
public async Task PostAbSanity()
{
await _client.PostAsync("/rest/v1/Ab", new Ab{Id=1});
_context.Abs.find(1).should().NotBeNull();
}
, но, как я могу вводить _context в тест? в моем приложении я добавляю его через конструкторы, но в тестах я не могу.
спасибо!
Я бы предположил, что после публикации вы получите сообщение, чтобы проверить, что опубликованная запись была создана. – Nkosi
Но не для всех моих методов сообщения существует противоположный get, и наоборот – arielorvits
, а также я не уверен. Это хорошая идея, так как вместо этого тест будет сосредоточен на его методе, он также вызовет много других API для посева db и т. д., это нормальный метод интеграции теста? – arielorvits