Outils pour utilisateurs

Outils du site


developpement:dotnet:moq:toc

Ceci est une ancienne révision du document !


NUnit

Pour une utilisation en .NET Core 2.x de NUNit, voir cette documentation.

Moq

Un Test Double est un terme générique pour désigner un élément de production dans l'objectif de tester1)

Il y a cinq types de test double : Fakes, Dummies, Stubs, Mocks et Spies. Voir Dummy, Fake, Stub, Mock et Spy, les tests unitaires avec l’aide de Moq pour plus de détails.

using Moq;
 
Mock<IFrequentFlyerNumberValidator> mockValidator = new Mock<IFrequentFlyerNumberValidator>();

Utilisation:

var sut = new CreditCardApplication(mockValidator.Object);

Setup des méthodes mockées

On peut spécifier ce qu'une méthode peut accepter, et ce qu'elle doit retourner:

mockValidator.Setup(x => x.IsValid("x")).Returns(true);

ou bien

mockValidator.Setup(x => x.IsValid(It.IsAny<string>())).Returns(true);
mockValidator.Setup(x => x.IsValid(It.Is<string>(number => number.StartsWith("x")))).Returns(true);

MockBehavior

Il y a deux modes de MockBehavior : Strict et Loose :

  • Strict: Lance une exception si une méthode a été appelée, mais qu'elle n'a pas de Setup().
  • Loose: Mode par défaut, ne lancera pas d'exceptions si une méthode est appelée et qu'elle n'a pas de Setup().
  • Default: C'est le mode par défaut, ce qui est équivalent à MockBehavior.Loose.

On suggère d'utiliser des mocks stricts seulement quand c'est nécessaire et préférer des mocks loose dans les autres cas.

developpement/dotnet/moq/toc.1515965353.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)