AddCombresRoute抛出ArgumentNullException

时间:2017-02-03 15:37:02

标签: c# asp.net-mvc combres

我在预先存在的Visual Studio解决方案中创建了一个新的测试项目,并尝试模拟控制器,以便我可以测试路由。主要项目利用Combres来缩小css等。为了更好地展示问题,我将.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'没有   用户代码处理。附加信息:值不能为空。

0 个答案:

没有答案