4

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

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

4

2 回答 2

2

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

我也叫“WebApiConfig.Register(GlobalConfiguration.Configuration);” 在我的设置方法中,但在我的控制器中对 Configuration.Services.GetTraceWriter() 的调用返回时出现空引用异常。所以我还帮不上那个忙。

于 2013-10-24T14:34:19.093 回答
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

于 2012-12-10T18:10:31.403 回答