代码之家  ›  专栏  ›  技术社区  ›  Maurice

是否有人使用了Steve Sanderson的MVCIntegrationTestFramework?

  •  13
  • Maurice  · 技术社区  · 15 年前

    我正在研究测试ASP.NET MVC应用程序的其他方法,并遇到了Steve Sanderson_ MvcIntegrationTestFramework . 这种方法看起来相当有希望,但我想知道是否有人有实际经验可以分享。

    4 回复  |  直到 12 年前
        1
  •  7
  •   user74754    13 年前

    我从中得到了一些很好的结果。我不在乎这里的其他人对测试视图的需求有什么看法,只要您将第一行代码添加到视图中,即使代码严格与表示相关,您也会引入潜在的错误,对于这种错误,编写自动化测试是个好主意。我的主要兴趣是尽可能多地捕获白色屏幕和黄色屏幕的异常/错误。为了做到这一点,我一直在使用Steven介绍性博客文章中的代码片段,以确保页面正确呈现,而不会引发任何异常:

    Assert.IsTrue(result.ResponseText.Contains("<!DOCTYPE html"));
    

    我在这个框架中看到的小缺陷可能是:

    • 如果您的网站在视图和操作方法之间进行一些非常复杂的模型绑定,您可能会发现自己创建了一些非常大的名称值集合,例如在本例中(实际采用LogonModel视图模型对象的操作方法),因为我看不到将任何复杂的视图模型对象类型传递到使用此框架的操作方法:

    var result = browsingSession.ProcessRequest("/account/logon", HttpVerbs.Post, new NameValueCollection { {"UserName","myName"}, {"Password", "myPassword"}, {"returnUrl", "/home/myActionMethod"} });

    • 执行browsingsession.processrequest(“url”)将创建一个应用程序主机/上下文,该主机/上下文使用正在测试的项目中的配置实际执行正在测试的Web代码。这意味着测试运行得有点慢,可能会修改真实的数据,因为我看不到一种快速而简单的方法,可以使用这个测试框架中内置的任何工具,将测试中的Web项目中的数据访问存储库换成假版本。换句话说,您可能需要使用一些基于web.config的方法来滚动自己的文件。
        2
  •  1
  •   Community arnoo    7 年前

    读后 ardave's answer 前一段时间,我们实际上是为了自己的新产品而尝试的。 Orchard 基于应用程序marinas.info。

    首先,我建议任何人从 this version 因为它比原来的更容易设置。

    对于任何“正常”的MVC3应用程序,它都可以简单地工作。不幸的是,与Orchard一道,它的表现并不好,至少没有经过修改的global.asax.cs版本。所以我们还是去了 browser based testing road 但我们一直在使用它来执行应用程序内部的果园命令,这已经足够快了。

        3
  •  0
  •   J.W.    15 年前

    我没有使用这个框架。但根据我读他的书的经验- Pro ASP.NET MVC Framework 和另一个验证框架 xVal 他发展了,我会说“他很棒”。

        4
  •  0
  •   dove    14 年前

    做了一点实验,在某些情况下可能非常有用。大拇指向上,如果我看到它的进一步工作,我将在未来的项目中使用。

    没有像以前那样继续 WatIn 设置并处理一些我不想在这个框架中再次处理的事情。例如,通过可能需要更改代码的对话框进行身份验证。