Итак, в настоящее время я все больше и больше поглощаюсь разработкой, основанной на тестировании, и чем больше кода я пишу, думая как-то странно, тем больше кажется, что мне приходится принимать решение о степени тестирования, которую я должен написать. Я хотел бы установить своего рода личную политику относительно того, сколько юнит-тестов я должен написать для своих собственных проектов, и мне было интересно, получу ли я какой-нибудь совет относительно того, как вы подходите ко всем вам.
Вот пример решения, с которым я сейчас сталкиваюсь ...
У меня есть три класса ...
public class User
{
public string Username { get; set; }
public List<Favorite> Favorties { get; set; }
}
public class Favorite
{
public string Username { get; set; }
public int rank { get; set; }
}
public class UserManager
{
public List<Favorite> GetTop5(User user)
{
var qry = from fav in user.Favorties.OrderBy(f => f.rank)
select fav;
return qry.Take<Favorite>(5).ToList();
}
}
У меня есть уровень доступа к данным для класса User, для которого у меня уже есть тестовая настройка GetUser. Как вы можете видеть, в моей бизнес-логике у меня есть метод UserManager.GetTop5 (), который возвращает топ-5 избранного для пользователя, которого я только что вытащил из БД. Этот метод очень прост и в настоящее время не включает никаких внешних ресурсов или зависимостей.
Итак, мой вопрос: не могли бы вы написать еще один тест для этой функциональной точки «GetTop5», даже если вероятность сбоя очень мала?
Вы настраиваете тест в любом случае на случай, если вы расширите функциональность в будущем? Или вы думаете, что тест здесь чрезмерен?