ControllerContext.RouteDataのValuesプロパティに依存するアプリケーションロジックをテストしようとしています。MVCアプリケーションのSystem.Web.RoutingのRouteDataクラスの模擬
これまでのところ、私はユニットテストが失敗したと
// Arrange
var httpContextMock = new Mock<HttpContextBase>(MockBehavior.Loose);
var controllerMock = new Mock<ControllerBase>(MockBehavior.Loose);
var routeDataMock = new Mock<RouteData>();
var wantedRouteValues = new Dictionary<string, string>();
wantedRouteValues.Add("key1", "value1");
var routeValues = new RouteValueDictionary(wantedRouteValues);
routeDataMock.SetupGet(r => r.Values).Returns(routeValues); <=== Fails here
var controllerContext = new ControllerContext(httpContextMock.Object, routeDataMock.Object, controllerMock.Object);
を持っている: System.ArgumentExceptionの:非オーバーライドメンバーに無効な設定: R => r.Values
が偽のRouteDataの作成コンストラクタがRouteData(RouteBase、IRouteHandler)のいずれかとして動作しません。
ここで重要なクラスは、RouteDataのインスタンスを返すGetRouteData(HttpContextBase)メソッドを持つ抽象クラスRouteBaseです。このクラスは私が偽造しようとしているクラスです。サークルで私を連れて行こう!
これに関するヘルプは、大歓迎です。
笑、ありがとう。これは、私のところで問題を考える上でのケースでした。非常に簡単です。乾杯。 – Magpie