J'ai du code dans un test utilisant Moq:
public class Invoice
{
...
public bool IsInFinancialYear(FinancialYearLookup financialYearLookup)
{
return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate;
}
...
}
Donc, dans un test unitaire, j'essaie de me moquer de cette méthode et de la rendre vraie
mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true);
Est-il possible d'écrire cette ligne afin que je n'ai pas à spécifier l'entrée dans IsInFinancialYear
. c'est à dire. Pour que le paramètre d'entrée ne soit pas indiqué dans le code, il retournera true quel que soit ce qui lui est transmis?
Vous pouvez utiliser It.IsAny<T>()
pour faire correspondre n'importe quelle valeur:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
Voir la section Arguments correspondants du guide de démarrage rapide.
Essayez d’utiliser It.IsAny<FinancialYearLookup>()
pour accepter n’importe quel argument:
mockInvoice.Setup(x => x.IsInFinancialYear(It.IsAny<FinancialYearLookup>())).Returns(true);
Vous pouvez essayer ce qui suit:
https://7pass.wordpress.com/2014/05/20/moq-setup-and-ignore-all-arguments/
Permet:
mock
.SetupIgnoreArgs(x => x.Method(null, null, null)
.Return(value);