Вот тест интеграции, который я написал для класса, который взаимодействует с базой данных:
[Test]
public void SaveUser()
{
// Arrange
var user = new User();
// Set a bunch of properties of the above User object
// Act
var usersCountPreSave = repository.SearchSubscribersByUsername(user.Username).Count();
repository.Save(user);
var usersCountPostSave = repository.SearchSubscribersByUsername(user.Username).Count();
// Assert
Assert.AreEqual(userCountPreSave + 1, userCountPostSave);
}
Мне кажется, что я не могу протестировать Save
без использования функции SearchSubscriberByUsername
, чтобы узнать, был ли успешно сохранен пользователь. Я понимаю, что интеграционные тесты не являются модульными тестами, которые должны тестировать по одной единице кода за раз. Но в идеале было бы неплохо, если бы я мог тестировать одну функцию в своем классе репозитория для каждого теста, но я не знаю, как я могу это сделать.
Хорошо, как я написал код до сих пор, или есть лучший способ?