单元测试瘦的控制器真的有必要吗?

时间:2015-09-21 16:43:31

标签: asp.net-mvc unit-testing tdd

我想知道你们是否对你的控制器进行单元测试,以及它是否是TDD环境中的常见做法。

我所拥有的是瘦调控制器,它基本上会在业务层中调用逻辑和数据,然后填充本地ViewModel 以通过观点。

我对业务层进行了单元测试,但是我想知道测试这些瘦的控制器是否仍然有意义,或者它确实没有必要,除非你有一个胖控制器,里面有很多逻辑。

请让我知道你的想法。

感谢。

3 个答案:

答案 0 :(得分:4)

为类创建一个UT,他所做的就是将呼叫从一个点转发到另一个点并不是一个好主意。原因很简单:它不值得......你不会从这些测试中获得任何好处,更多的是你必须保持那些测试,而你不会验证任何行为(只是结构) ...)

那我该如何报道这些单位呢?方式也很简单;只是将它们作为使用它们的一部分进行测试。

现在回到原始问题... 我发现测试我的瘦控制器的方法是通过组件/集成测试。我从BL开始,当我必须将BL与控制器耦合时,我创建一个组件/集成测试,然后用控制器实现结束任务。

答案 1 :(得分:1)

就个人而言,没有。但我通常也不会做TDD。

如果您确实先编写了测试,那么您也可以留下它们。他们没有伤害任何东西。

如果您没有先编写测试,我同意之后添加它们是没有意义的,因为那时您基本上是在测试MVC框架。

答案 2 :(得分:1)

根据经验,我不打扰测试没有任何逻辑的东西。只是调用另一个对象几乎不算作逻辑IMO。在顺序重要的顺序中调用多个其他对象更具争议性。

如果我使用从外到内的方法,我会做的是TDD控制器通过在我进一步向上进入食物链并实现真正的依赖关系之前剔除其依赖关系(业务服务,映射器等)。但我很少显式地断言应该按特定顺序调用依赖项。在一天结束时,这些测试更多地是关于设计而不是证明正确性,并且一旦编写了整个类图,就可以合理地删除它们。