如何使用全局配置对MVC / Web API进行单元测试

时间:2012-12-10 17:57:26

标签: asp.net-mvc unit-testing asp.net-web-api

我想对我的控制器进行单元测试,但在我的Global.asax.cs文件中,我必须注册JSON格式化程序,自定义标头和AutoMapper映射等内容。由于VS Unit测试功能是通过DLL而不是API测试控制器,因此不会创建HttpApplication,并且我的很多代码都无法测试。我该如何解决这个问题?

测试JsonFormatter输出的最简单方法是什么,因为它不是控制器的一部分,但也可能是异常的来源?

2 个答案:

答案 0 :(得分:2)

我有同样的问题。 对于autoMaopper,我运行了MapperConfig.Initialize();在我的单元测试的Setup方法中(我使用NUnit)

我也在打电话 “WebApiConfig.Register(GlobalConfiguration.Configuration);”在我的设置方法中 但是我的控制器中对Configuration.Services.GetTraceWriter()的调用将返回null引用异常。所以我还无法帮助那个。

答案 1 :(得分:0)

要对控制器进行单元测试,我只需在测试套件中引用API DLL并直接运用这些方法。

要进行更多集成测试,确保路由和映射按预期工作,我会在测试类中为WebApi创建一个HttpClient,并查看响应。
以下文章概述了如何从.NET客户端调用webApi函数: http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client

相关问题