0

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

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

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

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

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

4

1 回答 1

0

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

MVC 控制器(通常)服从REST

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

于 2014-06-17T10:13:14.097 回答