我的每个单元测试应该检查多少内容?例如我有这个测试
[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>));
}
显然,如果第一个测试失败,那么第二个测试也会失败,那么这两个测试是否应该组合成一个具有两个断言的测试?我的感觉是,测试越细粒度,每次测试检查越少,找到失败原因的速度就越快。然而,进行大量非常小的测试会产生开销,这可能会花费时间来运行所有测试。
我建议尽可能地分解它们。
造成这种情况的原因有很多,恕我直言,最重要的是:
至于你的速度问题,我不会担心。对于像这样的纯粹代码处理,.NET 是very速度很快,您将永远无法分辨出其中的差异。一旦你摆脱代码处理并进入数据库之类的事情,那么你就会感受到性能问题,但是一旦你这样做,你就会遇到如上所述的所有“干净的石板”问题,所以你可能只是必须忍受它(或者使尽可能多的数据不可变)。
祝您测试顺利。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)