أهلا،
في الوقت الحالي ، يمكنني فقط الوصول إلى هذه المباراة.
[Theory, AutoData]
public void Dummy(string dummy)
{
MethodBase method = MethodBase.GetCurrentMethod();
IFixture fixture = method.GetCustomAttribute<AutoDataAttribute>().Fixture;
Assert.Equal(dummy, dummy);
}
وأحصل على "AutoDataAttribute.Fixture" تحذير قديم.
هل هناك طريقة أفضل للوصول إلى الأداة التي تم إنشاؤها في سمة AutoData. أرغب في مزج المعلمات والإنشاء اليدوي والحقن.
شكرا
أهلا،
بالتأكيد ، ما عليك سوى أن تطلب من التركيبات الأساسية حل مثيل IFixture
وسيعود بنفسه:
c#
[Theory, AutoData]
public void Dummy(string dummy, IFixture fixture)
{
}
هل تعمل من أجلك؟ :غمزة:
نعم ، إنها حقًا طريقة أفضل.
هل يمكنك وضع هذا في AutoData wiki؟
لقد بحثت في كل مكان لأجد كيفية القيام بذلك.
لا أعتقد أن حاوية IOC قد سجلت IFixture.
شكرا جزيلا!
لماذا تحاول التسجيل في المباراة مع IoC؟ في تجربتي ليست هناك حاجة أبدا
في الغالب لتقليل معلمات طريقة الاختبار لإعداد واجهات متكررة معقدة.
[Theory, AutoMoqData]
public void Dummy(IFixture fixture, [Frozen]Mock<IComplexInterfaceWith30SubInterfaces> needed, TestClass sut)
{
//This will add interfaces setups for needed by retrieving them from the IoC container or by property access.
SetupInterfaces(fixture, needed);
//We can now use needed injected in sut.
}
لدي مثال أبسط
انا افضل هذا
[Theory, AutoMoqData]
public void Dummy(IFixture fixture)
{
Assert.Equal(String.Empty, String.Empty);
}
على هذا
[Fact]
public void Dummy2()
{
IFixture fixture = new Fixture().Customize(new AutoMoqCustomization());
Assert.Equal(String.Empty, String.Empty);
}
في الغالب لتقليل معلمات طريقة الاختبار لإعداد واجهات متكررة معقدة.
موافق ، لدي نفس الاستخدام في الاختبارات. الاختلاف الوحيد هو أنني أفضل أن أبدأ طرق التكرار المساعدة هذه بـ When()
، لذلك يبدو الاختبار كما يلي:
c#
public void Test([Frozen] IProvider provider, ISut sut, IFixture fixture)
{
// arrange
WhenProviderReturnsOnlyInitializedEntities(provider, fixture);
.....
}
لكن الفكرة في الأساس لا تزال هي نفسها 😉
إغلاق هذا واحد حيث لا توجد إجراءات أخرى مطلوبة.
هل يمكنك وضع هذا في AutoData wiki؟
@ malylemire1 سأقوم بإنشاء موقع مستند في مكان ما في المستقبل. ومع ذلك ، لا تتردد في إضافة هذه العينة إلى ويكي 😅 الخاص بنا
التعليق الأكثر فائدة
نعم ، إنها حقًا طريقة أفضل.
هل يمكنك وضع هذا في AutoData wiki؟
لقد بحثت في كل مكان لأجد كيفية القيام بذلك.
لا أعتقد أن حاوية IOC قد سجلت IFixture.
شكرا جزيلا!