我正在創建一個實體框架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,起訂量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);
我希望瞭解是否有可能實現我的目標,減少代碼的行數。
預先感謝您的時間和建議。
邁克