Saat ini saya sedang dalam proses memutakhirkan proyek sederhana ke dotnet core 3. Proyek ini memiliki sejumlah pengujian unit, sebagian besar terhadap lapisan pengontrol/api menggunakan AutoFixture & xunit2.
Setelah pemutakhiran semuanya berfungsi KECUALI tes unit perbaikan otomatis yang mencoba membuat pengontrol. Mereka gagal dengan pengecualian berikut:
AutoFixture.ObjectCreationExceptionWithPath : AutoFixture tidak dapat membuat instance dari Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo karena pembuatan tiba-tiba gagal dengan pengecualian. Silakan merujuk ke pengecualian dalam untuk menyelidiki akar penyebab kegagalan.
Jalur permintaan:
*.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.IList1[Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor] Parameters System.Collections.Generic.IList
1[Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor]
System.Collections.Generic.List1[Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor] System.Collections.Generic.IEnumerable
1[Microsoft.AspNetCore.Mvc.Abstractions.ParameterDescriptor] koleksi
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
Pesan pengecualian dalam:
System.Reflection.TargetInvocationException: Pengecualian telah dilontarkan oleh target pemanggilan.
System.ArgumentException: Jenis 'System.Object' harus mengimplementasikan 'Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder' untuk digunakan sebagai pengikat model. (Parameter 'nilai')
@TroyHouston Saya juga mengalami masalah ini. Saya telah memperbaikinya dengan menggunakan Atribut [Greedy] pada controller saya.
Saya menggunakan Nunit :)
@Fjsmoreira Terima kasih! Itu juga bekerja untuk saya :)
Saya tahu masalah ini sudah selesai, tetapi saya perlu bantuan untuk memahami dari mana Atribut [Serakah] berasal. @Fjsmoreira atau @TroyHouston , paket/perpustakaan apa yang perlu saya gunakan untuk mendapatkan Atribut [Serakah]?
Saya tahu masalah ini sudah selesai, tetapi saya perlu bantuan untuk memahami dari mana Atribut [Serakah] berasal. @Fjsmoreira atau @TroyHouston , paket/perpustakaan apa yang perlu saya gunakan untuk mendapatkan Atribut [Serakah]?
Sudahlah. Menemukannya! Sepertinya itu adalah bagian dari paket AutoFixture.Xunit .
Saya tahu ini ditutup tetapi untuk orang lain yang mengalami ini yang _arent_ menggunakan Xunit solusi cepat (malas) yang harus dilakukan
Fixture.Customize<BindingInfo>(c => c.OmitAutoProperties());
-- Saya yakin ada cara untuk _juga_ memperbaiki bindingInfo jika Anda membutuhkannya tetapi jika tidak dalam pengujian Anda...
Memecahkan masalah dengan OmitAutoProperties
:
var controller = fixture.Build<SomeController>().OmitAutoProperties().Create()
;
Komentar yang paling membantu
Saya tahu ini ditutup tetapi untuk orang lain yang mengalami ini yang _arent_ menggunakan Xunit solusi cepat (malas) yang harus dilakukan
Fixture.Customize<BindingInfo>(c => c.OmitAutoProperties());
-- Saya yakin ada cara untuk _juga_ memperbaiki bindingInfo jika Anda membutuhkannya tetapi jika tidak dalam pengujian Anda...