Home以外的控制器不会通过MvcIntegrationTesting测试

时间:2012-04-16 21:23:32

标签: asp.net-mvc integration-testing

我正在使用史蒂夫桑德森的adaptation精彩MVC Integration Testing Framework

如果我在我的应用程序中获取任何视图并通过此框架提供它(基本上通过HttpRuntime.ProcessRequest()创建'假'工作者请求)我可以在我的集成环境中在ASP.NET运行时中托管它测试

我的问题是为什么来自HomeController的任何视图都可以很好地完成此过程,但任何其他控制器都会给出回复

  

路径'get'被禁止

我可以将任何视图移动到HomeController并毫无问题地进行测试。我看到两个电话之间的工作人员请求假的没有区别(url不能承受)。我不知所措!

测试输出中的堆栈跟踪:

  

ContentControllerTwitterReturnsTheTwitterView:   FailedSystem.NullReferenceException:对象引用未设置为   对象的实例。

     

服务器堆栈跟踪:at   website.tests.ContentControllerTwitterTests.b__0(BrowsingSession   会议)在   MvcIntegrationTestFramework.Hosting.AppDomainProxy.RunBrowsingSessionInAppDomain(SerializableDelegate`1   脚本)在AppDomainProxy.cs中:第19行at   System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr的   md,Object [] args,Object server,Int32 methodPtr,Boolean   fExecuteInContext,Object []& outArgs)at   System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(即时聊天   msg,Int32 methodPtr,Boolean fExecuteInContext)

     

在[0]处重新抛出异常:at   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天   reqMsg,IMessage retMsg)at   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(REF   MessageData msgData,Int32 type)at   MvcIntegrationTestFramework.Hosting.AppDomainProxy.RunBrowsingSessionInAppDomain(SerializableDelegate 1 script) at MvcIntegrationTestFramework.Hosting.AppHost.Start(Action 1   在AppHost.cs中的testScript):第34行   website.tests.ContentControllerTwitterTests.ContentControllerTwitterReturnsTheTwitterView()   在HomeControllerTwitterTests.cs中:第25行

1 个答案:

答案 0 :(得分:0)

问题在于命名......答案是

  

不要将控制器命名为与解决方案中的文件夹同名的名称!

老傻瓜:)