unit tutorial test setup mock ejemplo c# mocking moq

c# - tutorial - Moq simula método sin especificar el parámetro de entrada



unit test c# ejemplo (3)

Tengo un código en una prueba que usa Moq:

public class Invoice { ... public bool IsInFinancialYear(FinancialYearLookup financialYearLookup) { return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate; } ... }

Entonces, en una prueba unitaria, intento burlarme de este método y hacer que vuelva verdadero

mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);

¿Hay alguna forma de escribir esta línea así que no tengo que especificar la entrada a IsInFinancialYear ? es decir. Para que no aparezca en el código cuál es el parámetro de entrada, ¿devolverá verdadero lo que se le pase?


Intenta usar It.IsAny<FinancialYearLookup>() para aceptar cualquier argumento:

mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);


Puede usar It.IsAny<T>() para hacer coincidir cualquier valor:

mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);

Consulte la sección Argumentos coincidentes del inicio rápido.