j'ai fait le test suivant pour ma classe:moq questions fondamentales
var mock = new Mock<IRandomNumberGenerator>();
mock.Setup(framework => framework.Generate(0, 50))
.Returns(7.0);
var rnac = new RandomNumberAverageCounter(mock.Object, 1, 100);
rnac.Run();
double result = rnac.GetAverage();
Assert.AreEqual(result, 7.0, 0.1);
Le problème ici est que je changé d'avis sur ce que gamme de valeurs Generate(int min, int max)
utiliseraient. Donc, dans Mock.Setup()
j'ai défini la plage à partir de 0 to 50
tandis que plus tard j'ai appelé la méthode Generate()
avec une plage de 1 to 100
.
J'ai exécuté le test et il a échoué. Je sais que c'est ce qui est censé arriver mais je me suis demandé s'il n'y avait pas un moyen de lancer une exception ou de lancer un message en essayant d'exécuter la méthode avec de mauvais paramètres. De plus, si je veux exécuter cette méthode Generate() 10 fois avec des valeurs différentes (disons de 1 à 10), devrais-je faire 10 configurations simulées ou quelque chose, ou y a-t-il une méthode spéciale pour cela? ? Le mieux que je pouvais penser est ce (qui est pas mal, je demande simplement s'il y a d'autres mieux):
for (int i = 1; i < 10; ++i) {
mock.Setup(framework => framework.Generate(1, 100))
.Returns((double)i);
}