Я создаю тесты против репозитория Entity Framework 6. Из-за зависимости между типом продукта и кредитом, я получаю круговую ошибку ссылки при использовании Autofixture.AutoMoq. Есть ли атрибут, который можно разместить над методом тестирования, поэтому я могу исключить следующую строку кода (и связанные с ней элементы в примере ниже): "fixture.Inject(Enumerable.Empty<Loan>());"
Есть ли атрибут Autofixture, который можно использовать вместо fixture.Inject() в коде?
Я использую XUnit 2.1.0.3179, Autofixture 3.50.2.0 , Autofixutre.AutoMoq 3.50.2.0, AutoFixture.Xnit2, Moq 4.5.29.0
Вот некоторые дополнительные детали, которые могут быть полезны ...
займа (N) --- (1) ProductType
Из-за круговой ссылки в моей модели EF6 я не могу сделать следующее:
[Theory, AutoMoqData]
public void ProductTypes_GetList()
List<ProductType> productTypeList,
[Frozen] Mock<IProductTypeRepository> productTypeRepo)
{
Вместо этого я должен сделать следующее, чтобы избежать циклических ссылок вопрос:
var fixture = new Fixture().Customize(new AutoMoqCustomization());
// Avoid circular dependency in EF.
// Eliminating the many side of the relationship.
fixture.Inject(Enumerable.Empty<Loan>());
var productTypeRepo = fixture.Freeze<Mock<IProductTypeRepository>>();
// Create a list of product types.
List<ProductType> productTypeList = fixture.Create<List<ProductType>>();
productTypeRepo.Setup(_ => _.GetAll()).Returns(productTypeList);
Я хотел бы знать, можно ли достичь своей цели и сократить строки кода.
Благодарим вас за время и предложения.
Майк