单元测试ASP.NET MVC 3 RESTful服务没有一个网络服务器

问题描述:

我目前正在写一个MVC3应用程序,将有暴露一个RESTful API。基本上所有我在做的是提供一些 控制器方法返回json对象而不是视图和正确处理动词(即放置帖子等)。单元测试ASP.NET MVC 3 RESTful服务没有一个网络服务器

我不知道如何单元测试RESTful API。我可以直接在C#中调用控制器,但这意味着 我不是“吃我自己的狗粮”(这是第三方会使用这个API)。 因此,目前在我的单元测试中,我使用HttpWebRequest来创建碰到真实Web服务器的请求。 这不太令人满意,因为我现在必须在我的构建机器上运行Web服务器。 有没有另一种方法来做到这一点?即模拟一个真正的Web请求,一些如何打击代码的所有部分,如果它在IIS中运行会被击中?

单元测试装置测试的代码的分离的单元,你的情况的控制器。如果您想要对整个系统进行端到端测试,则需要进行更多的集成测试。

你也许可以使用IIS 7主存卷筒纸芯设置你的集成测试,在您自己的过程:

http://blogs.iis.net/carlosag/archive/2008/04/14/host-your-own-web-server-in-your-application-using-iis-7-0-hostable-web-core.aspx

+0

感谢。我会看看。 – bplus 2012-04-08 14:12:33