MvcContrib.TestHelper ShouldMapTo()拡張メソッドを使用してルートを単体テストしようとして<TController>
いますが、テストが失敗し、次のエラーメッセージが表示されます。
failed: Method MvcContrib.TestHelper.RouteTestingExtensions.ShouldMapTo:
type argument 'ReviewController' violates the constraint of type parameter
'TController'.
しかし、ReviewControllerは制約を満たしています。これは、System.Web.Mvc.Controllerから継承するSmartControllerと呼ばれるクラスから継承します。したがって、私はこのエラーを解決する方法について途方に暮れています。
これが私のユニットテストです:
[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から直接継承するようにしましたが、それでもエラーがスローされます。
誰かが私が間違っていることを知っていますか?