你应该在哪里进行单元测试验证?

时间:2009-11-19 00:54:50

标签: c# .net asp.net-mvc unit-testing

这困扰了我一段时间了。我将所有验证都放在服务层中。但是当我进行单元测试时,我通常会通过动作方法传递一切然后进入我的服务层包含验证。

所以我现在不确定这是否是最好的方法。因为通常他们说你应该测试那种方法。

那你们觉得怎么样?

2 个答案:

答案 0 :(得分:3)

如果您通过操作请求传递了所有内容,那么听起来您正在进行集成测试。

如果你正在做(单位)测试,那么你应该测试单位。在这种情况下,您可以将服务层所需的所有数据传递给(模拟)操作请求。

你应该模拟传递给服务层的对象,传递它,然后根据实际返回的内容断言预期的结果。

修改

作为补充,最好是进行端到端或集成测试,因为它证明(进程)有效。

但是,您必须进行单元测试,因为他们将测试各个组件,并且会比端到端测试更快地将缺陷归零。

答案 1 :(得分:1)

如果我是你,我会分别测试服务层 - 其中包含验证---而不是通过操作方法。

这样做的原因是我希望保持我的测试代码“一次进行一次测试”。我对我的控制器进行了测试,专门测试模型和视图的交互,而不是其他东西。我想专门针对服务层和验证进行测试。

当你进行单元测试时,mocks是不可避免的。