我的每个单元测试应该检查多少?例如我有这个测试
[TestMethod]
public void IndexReturnsAView()
{
IActivityRepository repository = GetPopulatedRepository();
ActivityController activityController = GetActivityController(repository);
ActionResult result = activityController.Index();
Assert.IsInstanceOfType(result, typeof(ViewResult));
}
并且
[TestMethod]
public void IndexReturnsAViewWithAListOfActivitiesInModelData()
{
IActivityRepository repository = GetPopulatedRepository();
ActivityController activityController = GetActivityController(repository);
ViewResult result = activityController.Index() as ViewResult;
Assert.IsInstanceOfType(result.ViewData.Model, typeof(List<Activity>));
}
显然,如果第一个测试失败,那么第二个测试也会失败,那么这两个测试是否应该组合成一个带有两个断言的测试?我的感觉是,测试越细化,每次测试检查的越少,找到失败原因的速度就越快。但是,拥有大量非常小的测试会产生开销,这可能会花费时间来运行所有测试。