【发布时间】:2009-11-19 00:54:49
【问题描述】:
这让我困扰了一段时间。我将所有验证都放在服务层中。但是,当我进行单元测试时,我通常会通过操作方法传递所有内容。然后进入我的服务层,其中包含验证。
所以我现在不确定这是否是最好的方法。因为通常他们说你应该只测试那个方法。
你们觉得呢?
【问题讨论】:
标签: c# .net asp.net-mvc unit-testing
这让我困扰了一段时间。我将所有验证都放在服务层中。但是,当我进行单元测试时,我通常会通过操作方法传递所有内容。然后进入我的服务层,其中包含验证。
所以我现在不确定这是否是最好的方法。因为通常他们说你应该只测试那个方法。
你们觉得呢?
【问题讨论】:
标签: c# .net asp.net-mvc unit-testing
如果您通过操作请求传递所有内容,那么听起来您正在进行集成测试。
如果您正在进行(单元)测试,那么您应该测试单元。在这种情况下,您将向服务层传递所需的所有数据以(模拟)操作请求。
你应该模拟传递给服务层的对象,传递它,然后根据你实际得到的结果断言预期的结果。
编辑
作为补充,端到端或集成测试非常棒,因为它证明(过程)有效。
但是,您必须进行单元测试,因为它们将测试各个组件,并且比端到端测试能够或将要更快地将您归零。
【讨论】:
如果我是你,我会单独测试服务层——其中包含验证——而不是通过操作方法。
这样做的原因是我想让我的测试代码“一次只做一个测试”。我对我的控制器进行了测试,专门测试模型和视图的交互,而不是其他东西;我想专门针对服务层和验证进行测试。
当您进行单元测试时,mocks 是不可避免的。
【讨论】: