我最近一直在学习 MVC2 和 MVVM,我认为它是这样工作的。
ASP.NET MVC2 - 可以使用单元测试来测试整个网站
ASP.NET MVC2 + jquery web 服务调用 - 不能再只使用 MSTest 单元测试。测试 JavaScript 端的 MS 产品是什么?
ASP.NET Webforms - 如果编码人员没有在创建 Webforms 站点时考虑到测试,则单元测试几乎是不可能的。因此,Asp.NET Web 性能测试是最接近现实测试的东西。编码的 UI 测试太琐碎了,无法真正用于 ASP.NET 验证器之类的东西。
ASP.NET Webforms + jquery 网络服务调用 - 只能对网络服务调用进行单元测试。由于 javsscript 调用,无法使用 Web 性能测试。需要某种 javascript 测试框架。
Silverlight - 没有测试。也许是编码的 UI 测试。
Silverlight MVVM - 使用 silverlight 单元测试框架来测试类似于 MVC 的 ViewModel。
Silverlight MEF - MEF 如何影响测试场景?
这是准确的吗?有什么我想念的吗?
我正试图与负责人争论我们应该使用 MVC 而不是 Webforms 以便我们可以创建自动化测试。事实上,我们在一个项目中做所有的 Webforms 并且不可能测试,所以人们只是测试手动脚本:(
最佳答案
与其具体说明为什么您应该使用 MVC 而不是 Webforms,我会退后一步,向管理团队推销您应该使用单元测试的原因。售出后,您有理由说 MVC 可以让您比 webforms 更有效地做到这一点。
您是在考虑走完整的 TDD 路线,还是只是在之后创建测试?我强烈建议沿着 TDD 路径走下去,即使它确实具有更陡峭的学习曲线并且会降低您在学习它时的工作效率。
由于您已经在研究测试,您可能知道其中的大部分内容,但我将重申其中的一些好处:
进入 QA 的缺陷更少。
可以针对 QA 和客户发现的问题创建测试。
为测试而设计会创建更松散耦合的应用程序,这往往更易于维护。
随着应用程序代码库的成熟,开发人员在进行更改以实现持续生产力时更有信心。
对于加入项目的新开发人员来说,测试是很好的文档,因为他们可以看到正在努力实现的目标。
注意:修复已进入生产的缺陷的成本可能高达在开发和 QA 过程中发现并修复它的成本的 80 倍(我将尝试找到该数字的来源) .
虽然单元测试只是难题的一部分,但您还需要考虑使用 CruiseControl.NET 等持续集成服务器来自动化您的构建和测试。这将确保每个人都将构建保持在工作状态。
对于现有的 Webforms 项目,您可能还想查看 Web 客户端软件工厂。随着时间的推移,我发现它对于迁移遗留 webforms 应用程序非常有用,尽管它比 MVC2 更复杂一些。
关于asp.net - 测试如何与 ASP.NET MVC/WEBFORMS Silverlight MVVM 相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3118985/