Así que asumen estoy burlando de la clase siguiente:¿Puedo usar Moq para verificar que se invocó un método falso con valores específicos en un parámetro complejo?
public class ClassAParams
{
public int RequestedId { get; set; }
public string SomeValue { get; set; }
}
public class ClassA
{
public void ExecuteAction(ClassAParams executeParams) {}
}
Ahora dicen que tengo otra clase (vamos a llamarlo ClassB
) que estoy creando una unidad de pruebas para, y quiero para asegurarse de que cuando ClassB.Execute()
se llama , que ClassB
llama ClassA.ExecuteAction()
pero quiere asegurarse de que el parámetro que denomina ese método con ClassAParams.RequestedId
tiene un valor de 1.
Normalmente, me gustaría manejar esto haciendo myMock.Verify(x => x.ExecuteAction(new ClassAParams { RequestedId = 1, SomeValue = "something" }));
el p El problema es que no quiero verificar el valor del parámetro SomeValue
ni ninguna otra propiedad de ClassAParams
en esta prueba unitaria. Las otras propiedades se verificarán en otras pruebas unitarias, pero tener que verificar que se llama con las propiedades correctas en cada prueba unitaria (incluso cuando no me importa en el alcance de las pruebas de una unidad específica) hará que el mantenimiento de la unidad sea molesto.
¿Hay alguna manera de usar Moq para verificar que la estructura que se transfiere a un método simulado solo tiene ciertas propiedades como un valor específico e ignora el resto?
¡Funcionó como un amuleto, gracias! – KallDrexx