我想对我的控制器进行单元测试,但是在我的Global.asax.cs文件中,我必须注册诸如JSON格式器、定制头部和AutoMapper映射之类的东西。由于VS单元测试功能是通过动态链接库而不是API来测试控制器的,所以没有创建HttpApplication,并且我的许多代码都无法测试。我该如何解决这个问题呢?
测试JsonFormatter输出的最简单方法是什么,因为它不是控制器的一部分,但也可能是异常的来源?
发布于 2013-10-24 22:34:19
我也有同样的问题。对于autoMaopper,我在单元测试的Setup方法中运行了MapperConfig.Initialize();(使用NUnit)
我也在我的setup方法中调用了"WebApiConfig.Register(GlobalConfiguration.Configuration);“,但是在我的控制器中对Configuration.Services.GetTraceWriter()的调用返回了空引用异常。所以我还是帮不上忙。
发布于 2012-12-11 02:10:31
要对控制器进行单元测试,我只需引用测试套件中的API DLL并直接执行这些方法。
为了进行更多的集成测试,确保路由和映射按预期工作,我在测试类中创建了一个指向WebApi的HttpClient,并查看响应。
下面的文章很好地概述了如何从.NET客户端调用webApi函数:http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client
https://stackoverflow.com/questions/13806452
复制相似问题