Autofixture: dotnet core 3.0 - تعذر إنشاء مثيل من Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo

تم إنشاؤها على ٢٦ سبتمبر ٢٠١٩  ·  6تعليقات  ·  مصدر: AutoFixture/AutoFixture

أنا حاليًا بصدد ترقية مشروع بسيط إلى dotnet core 3. يحتوي هذا المشروع على عدد من اختبارات الوحدة ، معظمها ضد طبقة وحدة التحكم / api باستخدام AutoFixture & xunit2.

بعد الترقية ، يعمل كل شيء باستثناء اختبارات وحدة المزج التلقائي التي تحاول إنشاء وحدة تحكم. فشلوا مع الاستثناء التالي:

AutoFixture.ObjectCreationExceptionWithPath: لم يتمكن AutoFixture من إنشاء مثيل من Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo بسبب فشل الإنشاء بشكل غير متوقع مع استثناء. يرجى الرجوع إلى الاستثناء الداخلي للتحقيق في السبب الجذري للفشل.

مسار الطلب:
* .Inventory.Api.Controllers.ProductCategoriesController Controller* .Inventory.Api.Controllers.ProductCategoriesController
Microsoft.AspNetCore.Mvc.ControllerContext ControllerContext
Microsoft.AspNetCore.Mvc.ControllerContext
Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor ActionDescriptor
Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
System.Collections.Generic.IList 1[Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor] Parameters System.Collections.Generic.IList 1 [Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor]
System.Collections.Generic.List 1[Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor] System.Collections.Generic.IEnumerable 1 [Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor] مجموعة
System.Collections.Generic.IEnumerable`1 [Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor]
Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor
Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo BindingInfo
Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo

رسائل الاستثناءات الداخلية:
System.Reflection.TargetInvocationException: تم طرح استثناء بواسطة هدف الاستدعاء.
System.ArgumentException: يجب أن يقوم النوع "System.Object" بتطبيق "Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder" لاستخدامه كموثق نموذج. (قيمة المعلمة)

التعليق الأكثر فائدة

أعلم أن هذا مغلق ولكن بالنسبة للأشخاص الآخرين الذين يصادفون هذا الذي يستخدم Xunit ، فإن الحل السريع (الكسول) هو القيام به

Fixture.Customize<BindingInfo>(c => c.OmitAutoProperties()); - أنا متأكد من أن هناك طريقة _أيضا_ لإصلاح معلومات الربط إذا كنت في حاجة إليها ولكن إذا لم تشارك في اختباراتك ...

ال 6 كومينتر

TroyHouston لقد واجهت هذه المشكلة أيضًا. لقد أصلحته باستخدام السمة [الجشع] على وحدة التحكم الخاصة بي.

أنا أستخدم نونيت :)

تضمين التغريدة هذا يناسبني أيضًا :)

أعلم أن هذه المشكلة قد تم إغلاقها ، لكني بحاجة إلى بعض المساعدة لفهم مصدر السمة [الجشع]. Fjsmoreira أو TroyHouston ، ما الحزمة / المكتبة التي أحتاج لاستخدامها للحصول على سمة [الجشع]؟

أعلم أن هذه المشكلة قد تم إغلاقها ، لكني بحاجة إلى بعض المساعدة لفهم مصدر السمة [الجشع]. Fjsmoreira أو TroyHouston ، ما الحزمة / المكتبة التي أحتاج لاستخدامها للحصول على سمة [الجشع]؟

لا تهتم. اكتشفه! يبدو أنه جزء من حزمة AutoFixture.Xunit .

أعلم أن هذا مغلق ولكن بالنسبة للأشخاص الآخرين الذين يصادفون هذا الذي يستخدم Xunit ، فإن الحل السريع (الكسول) هو القيام به

Fixture.Customize<BindingInfo>(c => c.OmitAutoProperties()); - أنا متأكد من أن هناك طريقة _أيضا_ لإصلاح معلومات الربط إذا كنت في حاجة إليها ولكن إذا لم تشارك في اختباراتك ...

حل المشكلة مع OmitAutoProperties :
var controller = fixture.Build<SomeController>().OmitAutoProperties().Create() ؛

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

zvirja picture zvirja  ·  4تعليقات

joelleortiz picture joelleortiz  ·  4تعليقات

josh-degraw picture josh-degraw  ·  4تعليقات

zvirja picture zvirja  ·  8تعليقات

malylemire1 picture malylemire1  ·  7تعليقات