Ich habe Code in einem Test mit Moq:
public class Invoice
{
...
public bool IsInFinancialYear(FinancialYearLookup financialYearLookup)
{
return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate;
}
...
}
In einem Unit-Test versuche ich, diese Methode zu verspotten und sie als wahr zurückzugeben
mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);
Gibt es sowieso, um diese Zeile zu schreiben, damit ich die Eingabe nicht für IsInFinancialYear
angeben muss. dh Damit es im Code nicht stimmt, was der Eingabeparameter ist, wird true zurückgegeben, was auch immer an ihn übergeben wird?
Sie können It.IsAny<T>()
verwenden, um jedem Wert zu entsprechen:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
Siehe den Abschnitt Matching Arguments der Schnellstartanleitung.
Versuchen Sie, mit It.IsAny<FinancialYearLookup>()
ein Argument zu akzeptieren:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
Sie können Folgendes versuchen:
https://7pass.wordpress.com/2014/05/20/moq-setup-and-ignore-all-arguments/
Erlaubt:
mock
.SetupIgnoreArgs(x => x.Method(null, null, null)
.Return(value);