У меня есть модульные тесты. Каждый метод тестирования проверяет логический БЛОК функциональности в моей системе. В моих модульных тестах внешние зависимости (db, file и т. Д.) Обрабатываются с помощью Mocks и Fakes.
Теперь я не уверен на 100%, как мне подойти к интеграционному тесту. Должен ли я повторить модульные тесты и заменить их фактическими ресурсами (БД, файлы и т. Д.), Или я должен тестировать более низкоуровневые вещи, такие как:
1) Может пинговать базу данных
2) Может получить одну запись
3) Существует ли файл
и т. Д.
Я чувствую, что мне следует избегать бизнес-логики на этом этапе, поскольку большая часть ее должна была быть сделана в модуле, верно?
Спасибо
РЕДАКТИРОВАТЬ: Я был немного ленив при составлении своего вопроса, я также хотел знать, если мне нужно было протестировать бизнес-логику на этапе интеграции, то как мне настроить свои наборы тестов, чтобы минимизировать повторение тестового кода. Возьмем, к примеру:
[TestMethod] //Unit Tests
public void CanGetData()
{
IRepository rep = new MockRepository();
var result = rep.GetData();
Assert.IsTrue(result != null)
}
[TestMethod] //Integration Test
public void CanGetData()
{
IRepository rep = new Repository(); //real repository
var result = rep.GetData();
Assert.IsTrue(result != null)
}
Какая структура теста вам подходит? Используете ли вы сборку модульного теста непосредственно в своем проекте интеграции и добавляете ли нужные ресурсы?