0

我在预先存在的 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”的异常未在用户代码中处理。附加信息:值不能为空。

4

0 回答 0