Sto imparando il Test Driven Development e sto provando ad usare la libreria Moq per il mocking. Qual è lo scopo del metodo di installazione della classe Mock? metodo di installazioneMock objects - Metodo di installazione - Test Driven Development
risposta
viene utilizzato per impostare le aspettative sul oggetto fittizio Ad esempio:
mock.Setup(foo => foo.DoSomething("ping")).Returns(true);
Qui si sta impostando il metodo DoSomething
in oggetto fittizio. Stai dicendo che quando il parametro è "ping", il metodo restituisce true.
Ora questo oggetto può anche fungere da mock o da uno stub a seconda dell'utilizzo. Se si desidera utilizzarlo in test basati sullo stato, può fungere da stub. Se vuoi usarlo nei test basati sul comportamento, può fungere da mock. Nei test comportamento, si chiama il metodo di verifica sul oggetto fittizio di affermare che il metodo è stato chiamato con il parametro "ping"
Ulteriori consultare questi link:
Il il comportamento predefinito di un oggetto Moq Mock
consiste nello stub di tutti i metodi e le proprietà. Ciò significa che una chiamata a quel metodo/proprietà con qualsiasi parametro non avrà esito negativo e restituirà un valore predefinito per il particolare tipo di ritorno.
ti chiamano Setup
metodo per una o tutte le seguenti ragioni:
- si desidera limitare i valori di input per il metodo.
public interface ICalculator {
int Sum(int val1, val2);
}
var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
It.IsAny<int>(), //Any value
3 //value of 3
));
La configurazione sopra corrisponderà una chiamata al metodo Sum
con qualsiasi valore per val1
e val2
valore 3.
- si desidera restituire un valore specifico. Continuando con
ICalculator
esempio, la seguente configurazione restituirà un valore di 10, indipendentemente dei parametri di ingresso:
var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
It.IsAny<int>(), //Any value
It.IsAny<int>() //Any value
)).Returns(10);
- si desidera utilizzare
Mock<T>.VerifyAll()
dopo aver messe a punto per verificare che tutte le impostazioni precedenti sono stati chiamati (una volta).
var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
7, //value of 7
3 //value of 3
));
mock.Setup(m=>m.Sum(
5, //value of 5
3 //value of 3
));
mock.VerifyAll();
Il codice precedente verifica che Sum
è chiamato due volte. Una volta con (7,3)
e una volta con (5,3)
.
- 1. Test Driven Development, Unit Testing
- 2. Test Driven Development (TDD) con Rails
- 3. In Test Driven Development MA in REVERSE
- 4. Test Driven Development/Test di integrazione nello sviluppo di RIA
- 5. Come fare a Test Driven Development in modo corretto?
- 6. Comportamento Understanding Driven Development (BDD)
- 7. troppi metodi pubblici forzati da Test Driven Development
- 8. Test Driven Development (TDD): test delle unità di scrittura in Xcode 4
- 9. Scrivere giunchi in Test Driven Development prima di scrivere il codice reale?
- 10. Installazione di Business Intelligence Development Studio 2008
- 11. Esperienze con Test Driven Development (TDD) per progettazione logica (chip) in Verilog o VHDL
- 12. Test Driven Development in iOS ... to TDD o not to TDD
- 13. Python Annulla metodo mock
- 14. Mock un metodo nella stessa classe in fase di test
- 15. Sviluppo Bash e Test-driven
- 16. C# - Test unità, Mock?
- 17. XML nidificato per test dell'unità Data Driven
- 18. Mock fs.readdir per il test
- 19. Test Driven Design - dove ho sbagliato?
- 20. Test Driven .NET non userà addin NUnit
- 21. SoapUI Mock integrato nel test di Maven
- 22. Entity Framework di test con Mock IDbSet
- 23. Test unità Web Api 2 Mock User
- 24. Unit test con falsi o mock?
- 25. TestNG + Spring + Power mock Test unità
- 26. metodo mock con 11 parametri con gmock
- 27. Mock a Spark RDD nei test dell'unità
- 28. ASP.NET MVC - Mock Membership per Controller Test
- 29. Mock fuori angular.element a Jasmine test
- 30. Test del metodo privato utilizzando power mock che restituisce l'elenco di Integers
Non mi sono reso conto che si potrebbe semplicemente chiamare Setup() più di una volta per impostare più parametri diversi, e questo è l'unico posto in cui l'ho visto. –