今天我终于开始认真地为我的新ASP.net MVC项目编写一些单元测试。但是,某些单元测试会针对每个控制器中的每个操作进行返回:
对于每个操作,这三个测试包含或多或少相同的代码。由于我希望避免重复代码,因此我想到为每个操作自动执行这些“默认”测试。我做了一些关于它的快速谷歌,但找不到任何东西。
所以:
感谢您的回复!
答案 0 :(得分:2)
我认为对不同控制器进行类似测试是“重复”代码。应该重构测试逻辑,以便可以重复使用它。因此,重复使用测试代码来测试不同的控制器并不重复。
你看过MvcContrib内的TestHelpers吗?我认为已经实现了很多常见的控制器类型测试。还有其他方面使测试更容易一些。话虽如此,它可以用来更轻松地设置您的测试。看看关于Unit Testing Overkill的答案。
答案 1 :(得分:1)
第一个重要的战术问题是“你使用的是什么单元测试堆栈?”有些[mstest]在测试中不支持继承,所以做这种事情很棘手。
至于实际操作,我一般发现这可能有意义,但在单元测试中共享代码太多可能是件坏事 - 当您的单元测试代码变得如此复杂以至于需要单元测试时会发生什么对于测试代码?