我正在尝试使用AutoFixture的AutoMoqCustomization来通过Fixture.CreateAnonymous方法在单元测试中创建一个ASP.NET MVC2控制器。我已经在TestDriven.NET下的xUnit,xUnit测试GUI和MSTest中尝试过,并且所有的结果都是一样的:测试运行失败。如果需要,在Windows 7 x64上重现这个问题。
要重现这个问题,只需创建一个新的ASP.NET MVC2项目,添加对AutoFixture、AutoMoq和Moq(根据AutoMoq源3.1)的引用,然后尝试以下操作(请参见下面的VS2010 MVC2项目链接)。
在MSTest中,错误信息如下:
“运行时遇到致命错误。错误地址为0x6465f370,在线程0x2684上。错误代码为0xc0000005。此错误可能是CLR或用户代码的不安全或不可验证部分中的错误。导致该错误的常见源包括COM互操作或PInvoke的用户封送错误,这可能会损坏堆栈。” AfWithMvc重现项目(来自SkyDrive)
要重现这个问题,只需创建一个新的ASP.NET MVC2项目,添加对AutoFixture、AutoMoq和Moq(根据AutoMoq源3.1)的引用,然后尝试以下操作(请参见下面的VS2010 MVC2项目链接)。
[TestMethod]
public void Index()
{
var fixture = new Fixture().Customize(new AutoMoqCustomization());
// here's where the error in the test host occurs:
HomeController controller = fixture.CreateAnonymous<HomeController>();
}
在MSTest中,错误信息如下:
“运行时遇到致命错误。错误地址为0x6465f370,在线程0x2684上。错误代码为0xc0000005。此错误可能是CLR或用户代码的不安全或不可验证部分中的错误。导致该错误的常见源包括COM互操作或PInvoke的用户封送错误,这可能会损坏堆栈。” AfWithMvc重现项目(来自SkyDrive)