所以,这些天我越来越沉迷于测试驱动的开发,我在思考 tdd 时编写的代码越多,似乎我必须做出的关于我应该编写的测试范围的决定就越多。我想为我自己的项目编写多少单元测试设置一个个人策略,并且想知道我是否可以就你们采取什么样的方法获得一些建议。
这是我目前面临的决定的一个例子......
我有三个班...
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();
}
}
我有一个用户类的数据访问层,我已经有一个“GetUser”测试设置。如您所见,在我的业务逻辑中,我有一个方法 UserManager.GetTop5(),它返回我刚刚从数据库中拉出的用户的前 5 个收藏夹。此方法非常简单,目前不涉及任何外部资源或依赖项。
所以我的问题是,即使失败的可能性很小,你会继续为这个“GetTop5”功能点编写另一个测试吗?
如果您将来扩展功能,您是否仍然设置了测试?还是您认为这里的测试过度?