0

既存の Visual Studio ソリューションで新しいテスト プロジェクトを作成し、ルーティングをテストできるようにコントローラーをモックしようとしました。メイン プロジェクトでは、CSS の縮小などに Combres を使用しています。問題をよりよく示すために、解決しようとしているエラーを生成するテストに .AddCombresRoute を入れました。

private HttpContextBase rmContext;
private HttpRequestBase rmRequest;

[TestInitialize]
public void SetupTests()
{
    // Setup Rhino Mocks
    rmContext = MockRepository.GenerateMock<HttpContextBase>();
    rmRequest = MockRepository.GenerateMock<HttpRequestBase>();
    rmContext.Stub(x => x.Request).Return(rmRequest);

}

[TestMethod]
public void RhinoMocksRoutingTest()
{
    // Arrange
    RouteCollection routes = new RouteCollection();
    RouteConfig.RegisterRoutes(routes);
    rmRequest.Stub(e => e.AppRelativeCurrentExecutionFilePath).Return("~/Home/Index");

    // Act
    routes.AddCombresRoute("Combres Route");  *** ERRROR HERE ***
    RouteData routeData = routes.GetRouteData(rmContext);
    // Assert
    Assert.IsNotNull(routeData);
    Assert.AreEqual("Home",routeData.Values["controller"]);
    Assert.AreEqual("Index",routeData.Values["action"]);
}

正しい参照を作成しているにもかかわらず、combres.xml と Combres.xsd が App_Data にある (そしてローカルにコピーされている) ことを確認し、関連するエントリを app.config にドロップすると、テストを実行すると次のエラーが発生します。

ArgumentNullException がユーザー コードによって処理されませんでした。System.Xml.dll で発生した 'System.ArgumentNullException' 型の例外は、ユーザー コードで処理されませんでした。追加情報: 値を null にすることはできません。

4

0 に答える 0