Pruebas unitarias Dapper Update

dapper extension-methods moq nunit unit-testing

Pregunta

Database.Setup(x => x.Update(It.IsAny<Subscription>()))
                    .Callback<object>(sub => SavedSubscription = sub as Subscription);

Esta línea funciona con PetaPoco. Debido a los requisitos del proyecto, tuve que cambiar a Dapper (y también tuve que agregar DapperExtensions para tener los métodos CRUD), así que ahora estoy recibiendo este error:

Un árbol de expresiones no puede contener una llamada o invocación que use argumentos opcionales

¿Alguna idea de cómo manejar esto?

Respuesta popular

No puede usar Moq para simular métodos que tienen parámetros opcionales (como lo hace Update ). Consulte esta pregunta para obtener más detalles, aunque está bloqueado al especificar todos los parámetros en el método de Update .

Tenga en cuenta que esta es una limitación inherente al marco y no Moq; no puede pasar un método con un parámetro predeterminado a una Expression . Jon Skeet da una buena demostración de por qué aquí .



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué