【问题标题】:Is it possible to call ASP.NET MVC controller methods from a test in a running MVC web application?是否可以从正在运行的 MVC Web 应用程序的测试中调用 ASP.NET MVC 控制器方法?
【发布时间】:2014-06-17 10:00:12
【问题描述】:

我正在学习 ASP.Net MVC,并且我读过它很容易进行单元测试,因为控制器可以被实例化并调用它们的方法而无需部署到 Web 服务器,并且很容易模拟依赖对象等(参见http://msdn.microsoft.com/en-us/library/gg416511(VS.98).aspx 和其他多个参考)。

还可以通过浏览器使用 Selenium 或 Waitin 在 MVC 应用程序上运行验收级别测试,使用您自己喜欢的框架来编写和控制测试。

我想知道的是,是否可以通过调用已部署、正在运行的 MVC 应用程序中的控制器方法在验收测试级别运行 ATDD 测试,例如来自 Specflow,而不必通过 UI 进行测试?

或者更一般地说,是否可以从测试中以编程方式调用 ASP.Net MVC 应用程序的 API?

似乎在单元测试和基于浏览器的 UI 测试之间可以测试的内容存在差距。有没有人能够弥合这一差距?

【问题讨论】:

    标签: c# asp.net-mvc unit-testing tdd atdd


    【解决方案1】:

    你的问题不清楚,但如果你问我认为你是什么:

    MVC 控制器(通常)服从REST

    您可以通过向控制器发送 HTTP 请求来调用控制器上的任何操作(通过 IIS 等 Web 服务器)。它将返回一个包含相关数据和数据类型(HTML、json、XML 等)的 HTTP 响应。所以是的你可以像 API 一样以编程方式调用控制器(如果 API 是指你发送 HTTP 请求并从中获取 HTTP 响应的东西),因此是的 strong> 您可以在不使用 UI 的情况下测试控制器。

    【讨论】:

    猜你喜欢
    • 2019-08-02
    • 2011-03-25
    • 1970-01-01
    • 2018-06-18
    • 2018-11-21
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多