Код: Выделить всё
private Fixture _fixture;
public WhenRetrievingPlans()
{
_fixture = new Fixture();
_fixture.Behaviors.OfType().ToList()
.ForEach(b => _fixture.Behaviors.Remove(b));
_fixture.Behaviors.Add(new OmitOnRecursionBehavior());
using (var writer = new StreamWriter(@"D:\Workspace\Project\source\Project.Model.Test\trace.txt"))
{
_fixture.Behaviors.Add(new TracingBehavior(writer));
Код: Выделить всё
_fixture.Build()
.Without(e => e.ObjectProperty1)
.Without(e => e.ObjectProperty2)
.Without(e => e.CollectionProperty3)
.Without(e => e.CollectionProperty4)
.Without(e => e.ObjectProperty5)
...
.Create();
Я хочу, чтобы AutoFixture создал экземпляр EntityType, а затем я планирую вернуть это из Mock. (Это может быть неактуально.)
Код: Выделить всё
var entitiesDbSetMock = new Mock();
entitiesDbSetMock.SetupAllProperties();
_fixture.Inject(entitiesDbSetMock.Object);
Код: Выделить всё
var entity = _fixture.Create();
entitiesDbSetMock.Object.Attach(entity);
При чтении трассировки в первом разделе показано создание EntityType. и настройка всех свойств, которые я не исключил. Но сразу после того, как эта вещь будет создана, она, похоже, будет создана снова, но на этот раз она игнорирует мои настройки Without() и уходит глубже.
Код: Выделить всё
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: Project.Data.EntityType
Requested: Int32 EntityTypeID
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: System.Int32
Created: 232
Created: 232
Created: 232
Requested: System.Nullable`1[System.Int32] ForeignKey1ID
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: System.Nullable`1[System.Int32]
Requested: Int32 value
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: System.Int32
Created: 224
Created: 224
Created: 224
Created: 224
Created: 224
Created: 224
Requested: Int32 Property2ID
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: System.Int32
Created: 40
Created: 40
Created: 40
Requested: System.DateTime Property3Date
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: System.DateTime
Created: 6/6/2014 4:05:24 PM
Created: 6/6/2014 4:05:24 PM
Created: 6/6/2014 4:05:24 PM
*... (similar lines elided for brevity)*
Requested: Project.Data.OtherEntity OtherEntity
Created: Ploeh.AutoFixture.Kernel.OmitSpecimen
Requested: Project.Data.YetAnotherEntity YetAnotherEntity
Created: Ploeh.AutoFixture.Kernel.OmitSpecimen
Requested: System.Collections.Generic.ICollection`1[Project.Data.CollectionEntity] CollectionEntities
Created: Ploeh.AutoFixture.Kernel.OmitSpecimen
*... (similar lines elided for brevity)*
Created: Project.Data.EntityType
Created: Project.Data.EntityType
Код: Выделить всё
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: Project.Data.YetAnotherEntity
Created: Project.Data.YetAnotherEntity
Created: Project.Data.YetAnotherEntity
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: Project.Data.UnrelatedEntity
Created: Project.Data.UnrelatedEntity
Created: Project.Data.UnrelatedEntity
Requested: Ploeh.AutoFixture.Kernel.SeededRequest
Requested: Project.Data.EntityType *
Подробнее здесь: [url]https://stackoverflow.com/questions/31171606/autofixture-creating-unwanted-depth-in-complex-objects[/url]
Мобильная версия