单元测试 – 每个单元测试多少次?
每个单元测试应该检查多少?比如我有这个测试
[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非常快,你永远无法区分它们.一旦你摆脱了代码处理和数据库之类的问题,你就会感觉到性能问题,但是一旦你这样做,就会遇到如上所述的所有“干净的问题”,所以你可能只是必须忍受它(或尽可能多地使你的数据不变). 祝你的测试好运. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |