AutoFixture échoue à CreateAnonymous MVC Controller

Le code:

IFixture fixture = new Fixture().Customize(new AutoMoqCustomization()); fixture.Customize(c => c.Without(x => x.ModelMetadata)); var target = fixture.CreateAnonymous(); 

l’éxéption:

System.Reflection.TargetInvocationException: System.Reflection.TargetInvocationException: une exception a été levée par la cible d’un appel. —> System.NotImplementedException: la méthode ou l’opération n’est pas implémentée.

MyController() prend 3 parameters.

J’ai essayé le correctif décrit dans la réponse , mais cela ne fonctionnerait pas.

    Comme il semble , lorsque vous utilisez MVC 4, vous devez personnaliser l’instance de Fixture d’une manière différente.

    Le test devrait réussir si vous remplacez :

     fixture.Customize(c => c .Without(x => x.ModelMetadata)); 

    avec :

     fixture.Customize(c => c .Without(x => x.DisplayMode)); 

    Vous pouvez éventuellement créer un composite des personnalisations requirejses:

     internal class WebModelCustomization : CompositeCustomization { internal WebModelCustomization() : base( new MvcCustomization(), new AutoMoqCustomization()) { } private class MvcCustomization : ICustomization { public void Customize(IFixture fixture) { fixture.Customize(c => c .Without(x => x.DisplayMode)); } } } 

    Ensuite, le test original pourrait être réécrit comme suit:

     [Fact] public void Test() { var fixture = new Fixture() .Customize(new WebModelCustomization()); var sut = fixture.CreateAnonymous(); Assert.IsAssignableFrom(sut); }