需要有关使用 MvcContrib.TestHelper 的 ShouldMapTo() 通用扩展方法的错误的帮助
我尝试使用 MvcContrib.TestHelper ShouldMapTo
failed: Method MvcContrib.TestHelper.RouteTestingExtensions.ShouldMapTo:
type argument 'ReviewController' violates the constraint of type parameter
'TController'.
但 ReviewController 确实满足约束。它继承自一个名为 SmartController 的类,该类又继承自 System.Web.Mvc.Controller。因此我不知道如何解决这个错误。
这是我的单元测试:
[Test]
public void Should_map_review_controller_routes_correctly()
{
MvcApplication.RegisterRoutes(RouteTable.Routes);
"~/reviews"
.ShouldMapTo<ReviewController>(c => c.Index());
}
这是 ReviewController 类的声明:
public class ReviewController : SmartController<Review, ReviewForm>
{
...
}
和 SmartController 类的声明:
public abstract class SmartController<TModel, TForm> : Controller
where TModel : new()
{
...
}
只是为了笑,我尝试从继承层次结构中删除 SmartController,以便 ReviewController 直接从 Controller 继承,但仍然抛出错误。
有谁知道我做错了什么?
I'm trying to unit test my routes using the MvcContrib.TestHelper ShouldMapTo<TController>
() extension method, but my tests fail with the following error message:
failed: Method MvcContrib.TestHelper.RouteTestingExtensions.ShouldMapTo:
type argument 'ReviewController' violates the constraint of type parameter
'TController'.
But ReviewController does meet the constraint. It inherits from a class called SmartController, which inherits from System.Web.Mvc.Controller. Thus I am at a loss as to how to resolve this error.
Here is my unit test:
[Test]
public void Should_map_review_controller_routes_correctly()
{
MvcApplication.RegisterRoutes(RouteTable.Routes);
"~/reviews"
.ShouldMapTo<ReviewController>(c => c.Index());
}
Here is the declaration of the ReviewController class:
public class ReviewController : SmartController<Review, ReviewForm>
{
...
}
And the declaration of the SmartController class:
public abstract class SmartController<TModel, TForm> : Controller
where TModel : new()
{
...
}
Just for grins I tried removing SmartController from the inheritance hierarchy so that ReviewController inherits directly from Controller, but the error is still thrown.
Does anyone know what I'm doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将此方法与 MVC 2 和使用 MVC 2 构建的 MvcContrib 一起使用,一切正常。我发现了这个问题:
http://groups.google .com/group/mvccontrib-discuss/browse_thread/thread/356203db654fa4bd?pli=1
您是否在 MVC 2 中使用旧的 MvcContrib 程序集(使用 MVC1 构建)?如果是,您应该下载 MvcContrib 二进制文件或 MVC 2 的源代码。
I used this method with MVC 2 and MvcContrib built with MVC 2 and everything worked fine. I found this problem:
http://groups.google.com/group/mvccontrib-discuss/browse_thread/thread/356203db654fa4bd?pli=1
Are you using old MvcContrib assembly (built with MVC1) with MVC 2? If yes, you should download MvcContrib binaries or sources for MVC 2.