As it seems, when using MVC 4 you have to customize the Fixture
instance in a different way.
The test should pass if you replace:
fixture.Customize<ViewDataDictionary>(c => c
.Without(x => x.ModelMetadata));
with:
fixture.Customize<ControllerContext>(c => c
.Without(x => x.DisplayMode));
Optionally, you can create a composite of the required customizations:
internal class WebModelCustomization : CompositeCustomization
{
internal WebModelCustomization()
: base(
new MvcCustomization(),
new AutoMoqCustomization())
{
}
private class MvcCustomization : ICustomization
{
public void Customize(IFixture fixture)
{
fixture.Customize<ControllerContext>(c => c
.Without(x => x.DisplayMode));
}
}
}
Then, the original test could be rewritten as:
[Fact]
public void Test()
{
var fixture = new Fixture()
.Customize(new WebModelCustomization());
var sut = fixture.CreateAnonymous<MyController>();
Assert.IsAssignableFrom<IController>(sut);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…