Wie kann ich überprüfen, ob eine Methode genau einmal mit Moq aufgerufen wurde? Die Verify()
vs. Verifable()
Sache ist wirklich verwirrend.Wie überprüfe ich, dass eine Methode genau einmal mit Moq aufgerufen wurde?
74
A
Antwort
112
können Sie verwenden Times.Once()
oder Times.Exactly(1)
:
mockContext.Verify(x => x.SaveChanges(), Times.Once());
mockContext.Verify(x => x.SaveChanges(), Times.Exactly(1));
Hier sind die Methoden auf der Times Klasse:
AtLeast
- Gibt an, dass ein verspottet Methode Zeitmal als Minimum aufgerufen werden soll.AtLeastOnce
- Gibt an, dass eine verspottete Methode mindestens einmal aufgerufen werden soll.AtMost
- Gibt an, dass eine verspätete Methode als maximale Zeit aufgerufen werden soll.AtMostOnce
- Gibt an, dass eine verspätete Methode maximal einmal aufgerufen werden soll.Between
- Gibt an, dass eine gespottete Methode zwischen "from" und "to" aufgerufen werden soll.Exactly
- Gibt an, dass eine verspottete Methode genau mal aufgerufen werden soll.Never
- Gibt an, dass eine verspätete Methode nicht aufgerufen werden soll.Once
- Gibt an, dass eine verspätete Methode genau einmal aufgerufen werden soll.
Denken Sie daran, dass es Methodenaufrufe sind; Ich stolperte immer wieder, dachte, sie wären Eigentum und vergaß die Klammern.
0
Test-Controller kann sein:
public HttpResponseMessage DeleteCars(HttpRequestMessage request, int id)
{
Car item = _service.Get(id);
if (item == null)
{
return request.CreateResponse(HttpStatusCode.NotFound);
}
_service.Remove(id);
return request.CreateResponse(HttpStatusCode.OK);
}
Und wenn DeleteCars Methode mit gültiger ID genannt, dann können wir das überprüfen, Service-remove-Methode genau einmal durch diesen Test genannt:
[TestMethod]
public void Delete_WhenInvokedWithValidId_ShouldBeCalledRevomeOnce()
{
//arange
const int carid = 10;
var car = new Car() { Id = carid, Year = 2001, Model = "TTT", Make = "CAR 1", Price=2000 };
mockCarService.Setup(x => x.Get(It.IsAny<int>())).Returns(car);
var httpRequestMessage = new HttpRequestMessage();
httpRequestMessage.Properties[HttpPropertyKeys.HttpConfigurationKey] = new HttpConfiguration();
//act
var result = carController.DeleteCar(httpRequestMessage, vechileId);
//assert
mockCarService.Verify(x => x.Remove(carid), Times.Exactly(1));
}
Verwandte Themen
- 1. Asserting, dass eine Methode genau einmal aufgerufen wird
- 2. Wie überprüfe ich, ob eine von zwei Methoden aufgerufen wurde?
- 3. Überprüfung eines Delegaten wurde mit Moq
- 4. Wie kann man überprüfen, dass diese Methode NICHT in Moq aufgerufen wurde?
- 5. Wie kann ich mit Mockito eine Methode überprüfen, die mit einem bestimmten Argument aufgerufen wurde?
- 6. Wie kann ich feststellen, dass eine bestimmte Methode mit NUnit aufgerufen wurde?
- 7. Moq: Überprüfen, ob eine Methode mit einem bestimmten Delegaten aufgerufen wurde, erzeugt "method argument length mismatch"
- 8. Überprüfen Sie, dass eine Eigenschaft mit Moq
- 9. Wie kann ich testen, ob eine java.lang.Math-Methode aufgerufen wurde?
- 10. Sicherstellen, dass eine Methode mit Mockito ohne Angabe von Argumenten aufgerufen wurde
- 11. moq - wie zu überprüfen Methode wurde nicht aufgerufen, wenn die Klasse Ausnahmen schluckt
- 12. Wie überprüfe ich mit QTest, dass eine Ausnahme ausgelöst wird?
- 13. Wie kann ich mit RhinoMocks feststellen, dass eine von mehreren Methoden aufgerufen wurde?
- 14. Moq, wie ein Verfahren bestimmen, wurde aufgerufen, mit einer Liste, die bestimmte Werte
- 15. Die Methode cellForRowAtIndexPath-Methode wurde nicht aufgerufen
- 16. Überprüfen Sie, dass eine Methode nie mit OCMock aufgerufen wurde 3
- 17. Überprüfen Sie, wie oft eine geschützte Methode mit Moq aufgerufen wird
- 18. Verhindern, dass eine Methode vor einer anderen aufgerufen wird
- 19. Wie überprüfe ich, ob session_start eingegeben wurde?
- 20. Run-Shell-Skript genau einmal mit Cronjob
- 21. Wie kann ich mit OCMock überprüfen, dass eine Methode nie aufgerufen wird?
- 22. RSpec. Wie überprüfe ich, ob die Objektmethode aufgerufen wird?
- 23. Überprüfen generische Methode namens Moq mit
- 24. Wie kann ich eine Moq-geschützte Methode bestätigen/bestätigen?
- 25. Sicherstellen, dass eine Methode über Remoting aufgerufen wird?
- 26. Wie wird eine Methode mit Parametern aufgerufen?
- 27. Moq-Test Lösche Methode
- 28. RecyclerView.onBindViewHolder nur einmal aufgerufen
- 29. Überprüfen Sie, dass eine private Methode wurde nicht ausgeführt JMockit
- 30. MOQ - überprüfen Ausnahme wurde ausgelöst
so wie zu tun Sie erhalten/setup den MockContext? – Choco