0

我正在使用Steve Sanderson 精彩的MVC 集成测试框架的改编版本

如果我在我的应用程序中获取任何视图并通过这个框架(它基本上创建一个“假”工作请求HttpRuntime.ProcessRequest())来提供它,我可以在我的集成测试上下文中将它托管在 ASP.NET 运行时中。

我的问题是为什么从这个过程中得到的任何观点HomeController都会很好地通过这个过程,但任何其他控制器都会给出回应

路径“获取”被禁止

我可以将任何视图移动到 HomeController 并毫无问题地对其进行测试。我看不出两个调用之间的工作人员请求假的区别(url 不能承受)。我很茫然!

测试输出中的堆栈跟踪:

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

服务器堆栈跟踪:位于 AppDomainProxy.cs 中 MvcIntegrationTestFramework.Hosting.AppDomainProxy.RunBrowsingSessionInAppDomain(SerializableDelegate`1 脚本)的 website.tests.ContentControllerTwitterTests.b__0(BrowsingSession session):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(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

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

4

1 回答 1

0

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

不要使用与解决方案中的文件夹相同的名称来命名您的控制器!

老傻瓜:)

于 2012-04-16T21:50:52.150 回答