【发布时间】:2013-04-23 18:02:24
【问题描述】:
使用 .Net MVC 4、RavenDB、MSTest。
我按照 RavenDB 文档创建了一个抽象控制器类,它在 OnActionExecuting() 中创建 RavenSession,并将数据保存在 OnActionExecuted() 中。
我正在尝试对我的控制器进行单元测试,但 OnActionExecuting() 和 OnActionExecuted() 方法永远不会触发。这意味着永远不会创建会话,并且我无法访问数据库 - 因此单元测试失败。
在单元测试中,我调用控制器方法如下:
PersonController controller = new PersonController();
JsonResult result = controller.GetPerson("people/1");
PersonController.GetPerson 会触发,但当 RavenSession 没有值(它应该在上面提到的抽象类方法中实例化)时很快就会出错。
PersonController 派生自抽象类 RavenController。 Raven Controller 定义了 OnActionExecuting() 和 OnActionExecuted() 方法,但它们从未被调用。
我应该在单元测试中以另一种方式调用控制器方法吗?
【问题讨论】:
标签: asp.net-mvc unit-testing controller abstract-class ravendb