1
4
简短回答:“是”加“如果”,长回答:“否”加“但是”
控制器级测试的一个问题是,为了有效地进行测试,您通常必须模拟或生成大量的模型和对象。有鉴于此,我发现将这些测试推进到功能层更有价值,在功能层中,测试样式允许您更有效地表达这些依赖关系(通过应用程序本身或通过Cucumber的声明性规则之类的系统显式地遵循生成这些依赖关系所需的步骤)。 |
2
2
一切都值得进行单元测试。在这种情况下,这取决于控制器中实现了多少逻辑。。。在小型项目中,您可以不附加任何外部逻辑,并且您可能希望在控制器中执行一些数据库操作(就像许多Microsoft示例中一样)。在更大的解决方案中,您可能不需要测试控制器,因为它的工作只是调用指定的业务逻辑方法。。。这不是关于控制器是否值得进行单元测试,而是关于它们所包含的代码是否。。。 |
3
0
MVC模式的一个最好的特性是,可以通过视图将控制器与HTML输出隔离开来进行测试。将逻辑与HTML输出混合在一起的页面很难测试,这是MVC解决的问题之一—它使您的控制器完全依赖于逻辑,您可以在根本不解析HTML的情况下对其进行测试。 理想情况下,您的控制器将从单独的数据访问类获取数据,您可以将这些数据存根出来进行测试,因此您只需测试逻辑即可。从本质上讲,您将控制器与数据库隔离,就像MVC将其与视图隔离一样—这样测试就很容易了,因为您也不需要一个包含测试数据的数据库。 |
mg610 · 如何开始C++单元测试 2 年前 |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
shilin agre · 在Python中测试修饰函数 2 年前 |
SlipScout · Unittest只传递单个值,而不是获取多个值 2 年前 |
Alex · 从实际对象的实例返回默认模拟结果 2 年前 |