Например, я получил эти частичные классы, сгенерированную EF Database First:Создание EF сущности окурок с AutoFixture
Собака:(EF объекта)
public partial class Dog
{
public int DogID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int PetOwnerID { get; set; }
// Navigation property
public virtual PetOwner PetOwner { get; set; }
}
PetOwner :(EF объект)
public partial class PetOwner
{
public int PetOwnerID { get; set; }
public string PetOwnerName { get; set; }
// Navigation property
public virtual ICollection<Dog> Dogs { get; set; }
}
Мне нужен простой заглушка типа Dog
для модульного тестирования. Но когда я пытаюсь создать заглушку с помощью AutoFixture, генерируется исключение рекурсивной зависимости. Если я попытаюсь изменить поведение прибора, как это, он зависает.
var fixture = new Fixture();
fixture.Behaviors.OfType<ThrowingRecursionBehavior>().ToList().ForEach(b => fixture.Behaviors.Remove(b));
fixture.Behaviors.Add(new OmitOnRecursionBehavior(1));
var dog = fixture.Create<Dog>();
Мне не нужны никакие функции EF здесь, просто класс со свойствами для тестирования. У меня есть NUnit, Moq, AutoFixture.
UPDATE:
var dog = fixture.Build<Dog>().Without(x => x.PetOwner).Create();
Это решает проблему, но мне нужно свойство навигации, чтобы быть не нулевым.
@ Enrico Campidoglio, тест просто не заканчивается. Я пытаюсь собрать больше информации сейчас. – AsValeO
Не обновляйте свой Q, включая ваши ответы внутри него. Если вы найдете рабочий ответ по своему собственному вопросу, ответьте на него сами и признайте его действительным (я думаю, вам нужно подождать пару дней, чтобы сделать это). Это делает его полезным для сообщества. И, если, как в этом случае, вы частично решаете проблему, вы можете отредактировать эту Q, ответить на нее и создать новую Q с новой проблемой. Это немного больше работы, но это намного лучше. – JotaBe
Вам нужна коллекция 'PetOwner.Dogs', которая также будет заполнена? –