【发布时间】:2013-09-19 14:24:32
【问题描述】:
我正在探索 github 上 JohnPapa 的 CodeCamper 项目 https://github.com/johnpapa/CodeCamper。这是一个 ASP.Net SPA 应用程序,我也在从事类似的项目。
我有兴趣为 WebAPI 控制器编写一些单元测试。控制器承包商需要 UnitofWork 实例,并且 UnitofWork 在 Application_Start 方法中启动。
当我运行我的 UnitTest 项目时,UnitofWork 对象为空。我如何从 UnitTest 项目启动 UnitofWork 以便我可以运行我的测试方法。我希望自己清楚。
这是一个用于跟随控制器的示例 UnitTest 方法。
UserControllerTest.cs
[TestClass]
public class UserControllerTest : ApiBaseController
{
[TestMethod]
public void GetRoomsTest()
{
var controller = new LookupsController(Uow);
var result = controller. GetRooms().Any();
Assert.IsTrue(result);
}
}
为什么 Uow 为空?我应该怎么做,这样我才能为这种类型的项目/架构编写单元测试方法。
有关代码的更多详细信息,您可以查看 github repo.https://github.com/johnpapa/CodeCamper
【问题讨论】:
-
你或许可以使用像 Moq 这样的 Mock 框架为 UoW 接口创建一个新的 mock 实例,并将该 mock 实例传递给控制器
标签: c# asp.net-mvc unit-testing asp.net-web-api unit-of-work