我想对我的控制器进行单元测试,但是在我的 Global.asax.cs 文件中,我必须注册诸如 JSON 格式化程序、自定义标头和 AutoMapper 映射之类的东西。由于 VS 单元测试功能是通过 DLL 而不是 API 测试控制器,因此没有创建 HttpApplication 并且我的很多代码都无法测试。我怎样才能解决这个问题?
测试 JsonFormatter 输出的最简单方法是什么,因为它实际上不是控制器的一部分,但也可能是异常的来源?
我想对我的控制器进行单元测试,但是在我的 Global.asax.cs 文件中,我必须注册诸如 JSON 格式化程序、自定义标头和 AutoMapper 映射之类的东西。由于 VS 单元测试功能是通过 DLL 而不是 API 测试控制器,因此没有创建 HttpApplication 并且我的很多代码都无法测试。我怎样才能解决这个问题?
测试 JsonFormatter 输出的最简单方法是什么,因为它实际上不是控制器的一部分,但也可能是异常的来源?
我遇到过同样的问题。对于 autoMaopper,我运行了 MapperConfig.Initialize(); 在我的单元测试的设置方法中(我使用 NUnit)
我也叫“WebApiConfig.Register(GlobalConfiguration.Configuration);” 在我的设置方法中,但在我的控制器中对 Configuration.Services.GetTraceWriter() 的调用返回时出现空引用异常。所以我还帮不上那个忙。
为了对控制器进行单元测试,我只需在我的测试套件中引用 API DLL 并直接执行这些方法。
为了进行更多的集成测试,确保您的路由和映射按预期工作,我在我的测试类中为 WebApi 创建了一个 HttpClient,并查看响应。
以下文章很好地概述了如何从 .NET 客户端调用 webApi 函数:
http ://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from -a-net-client