gpt4 book ai didi

model-view-controller - 我应该测试我的 Controller (MVC)吗?

转载 作者:行者123 更新时间:2023-12-03 13:28:04 24 4
gpt4 key购买 nike

我已经使用 TDD 几个月了,现在我想学习如何测试我的 Controller (MVC)。

单元测试是通过测试每个功能的最小单元来进行的。有时, Controller 并不小。他们从模型中获取数据,然后传递给 View 。

我应该如何对 Controller 进行单元测试?我应该模拟 Controller 的依赖项吗?

Controller 测试是否被视为集成测试?

谢谢你。

最佳答案

我做 TDD 很长时间了。我用 ASP.NET MVC 做 TDD 已经一年多了。

我从规范规则开始:“没有单元测试就没有代码行”,所以我测试了所有东西——包括 Controller 。 Controller 必须经过测试,这是 MVC 框架的目标之一 - 使这些东西可测试。

对于小型应用程序,这种方法非常有效。几乎所有的逻辑都放在 Controller 中,一切都经过了很好的测试。

但只要我继续使用 MVC,我就开始改变主意。我尽量让 Controller 保持纤薄。理想情况下,仅将调用委托(delegate)给某个业务对象并包装结果。剩下的就是过滤器了。

这对我也很有效!我现在拥有单独实现/测试的业务对象,因此 Controller 只是集成点。没有理由测试集成点,因为它很小。

关于集成测试:我还没有遇到我真正需要的情况。不要忘记, Controller 总是依赖于构造函数注入(inject)的抽象。只要您对这些抽象如何工作有“好的”假设,您就可以创建适当的单元测试。当您失败时,您只需更正单元测试。

集成测试很重要也很有用,但我尝试尽可能少地创建这些测试。

关于model-view-controller - 我应该测试我的 Controller (MVC)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10210640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com