I eine Schnittstelle definiert alsMOQ - Einstellung eines Verfahrens up basierend auf Argumentwerte (mehrere Argumente)
interface IMath
{
AddNumbersBetween(int lowerVal, int upperVal);
}
I Setup ein basisches Moq für das obige wie folgt:
Mock<IMath> mock = new Mock<IMath>();
mock.Setup(m => m.AddNumbersBetween(It.IsAny<int>(), It.IsAny<int>()));
Aufruf es
mock.Object.AddNumbersBetween(1,4);
und dann überprüfen, ob es hieß
mock.Verify(m => m.AddNumbersBetween(1,4), Times.AtleastOnce());
ich kann nicht herausfinden, wie die Einrichtung die Methode AddNumbersBetween, so dass, wenn die upperVal niedriger ist als die lowerVal eine Ausnahme ausgelöst wird
mock.Object.AddNumbersBetween(4,1);//should throw an exception
Wesentlichen für so etwas suchen:
mock.Setup(foo => foo.AddNumbersBetween("arg1 is higher than arg2")).Throws<ArgumentException>();
Ich würde empfehlen, die Ausnahme-werfende Logik mit einem Callback einfach zu implementieren, weil das vollen Zugriff auf beide Parameter gibt. Soweit ich weiß, können die Parameter-Matching-Klauseln nur Logik basierend auf einem einzelnen Parameter ausführen. –