关于ASP.NET MVC中关于TDD或单元测试的问题

时间:2010-04-06 22:57:03

标签: asp.net-mvc unit-testing tdd

我一直在寻找如何进行单元测试并发现它非常简单,但是,我想知道的是,在asp.net mvc应用程序中,测试哪些方面非常重要以及你使用哪种方法伙计们用? 在编程单元测试时,我无法找到关于什么要真正测试的明确答案。 我只是不想进行不必要的测试,并且缺少开发时间来进行过度测试。

4 个答案:

答案 0 :(得分:5)

您应该对应用程序进行单元测试

对于您编写的每行代码,您需要验证它是否有效。如果您不进行单元测试,则需要以其他方式进行测试。即使启动网站并点击也是一种测试。

当您将单元测试与其他类型的测试(包括运行站点并手动使用它)进行比较时,单元测试往往会提供最佳的投资回报,因为它们相对易于编写和维护,并且可以为您提供快速反馈,了解您是否刚刚介绍了回归错误。

我并不是说编写单元测试没有开销 - 但是,但是在任何类型的测试中都存在开销,而且根本没有测试会产生很大的开销(因为回归错误很容易漏掉)。

使用其他类型的测试补充单元测试仍然是一种很好的做法,但是一个好的单元测试套件提供了一个出色的回归测试套件。

答案 1 :(得分:4)

Ron Jeffries说“Test everything that could possibly break。”

其他人 - 我认为这是肯特贝克,但我找不到参考 - 说,“只测试你想要工作的代码。

其中任何一个都是一个非常好的策略。

答案 2 :(得分:1)

我实际上认为没有什么需要在MVC中进行测试。我认为您的所有业务逻辑,规则等都需要测试,但是视图和控制器?

我可以看到测试控制器的唯一真正原因是进行集成测试。如果您的所有业务逻辑都是正确的,那么这应该是一个总是返回true的简单测试。

控制器应该只从视图中获取数据并将数据传递给它......

至于视图,可以在那里进行哪种测试,而不是打开视图并查看它的作用?

当我编写项目时,控制器旁边没有代码,我把所有的咕噜声放在我的业务引擎中,我已经进行了大量的测试。

答案 3 :(得分:0)

单元测试适用于测试服务/模型。但是当您需要测试应用程序功能时,更好的选择是功能测试(即Selenium)