J'essaie de tester une action de contrôleur utilisant le fournisseur d'adhésion pour mettre à jour les détails de l'utilisateur. J'utilise MOQ qui jusqu'à présent a été facile à utiliser.
Le problème est que je ne peux pas sembler l'obtenir pour se moquer d'appels à des méthodes qui ne retournent rien. P>
<TestMethod()> _ Public Sub Can_Update_User() ' Arrange _membershipService.Setup(Function(x) x.UpdateUser(It.IsAny(Of MembershipUser))) Dim controller As New UsersController(_membershipService.Object, _roleProvider.Object, _supportWorksService.Object, _portalClientService.Object) ' Act Dim result As ViewResult = controller.Edit("testUser", New FormCollection) ' Assert Assert.AreEqual("Index", result.ViewName) End Sub
4 Réponses :
Il semble que Ce scelle la transaction. p>
genre une insuffisance - enquête m'a pris beaucoup de temps. : / p>
Comme vous l'avez trouvé, la version actuelle de vb.net (VB9) n'autorise que les méthodes Lambda qui renvoient une valeur (c'est-à-dire. dans le version suivante de vb.net < / a> (vb10), la langue prendra en charge Il semble que d'autres personnes soient aussi Avoir des problèmes de degrés divergents avec le Combinaison MOQ / VB.NET actuelle. P> fonction code> lambdas). Il n'y a pas vraiment beaucoup que vous pouvez faire à propos de cela autre que celui de Créer une fonction pour renvoyer un Valeur factice . Je ne peux pas le tester pour le moment, alors je ne suis pas sûr que ce soit une solution de contournement viable pour cette affaire. p>
sous code> lambdas et devrait aider dans ces cas. P>
:( Honte vraiment, en dehors de cela, je suis vraiment aimant MOQ. Si je suggère au patron, nous avons réduit le développement pendant une autre année afin qu'ils puissent obtenir VB10, je pense qu'il me tuera!
Typemock prend en charge l'API conviviale VB.NET à cette fin: http://site.typemock.com/vbpage/ 2009/9/10 / unité-test-vbnet.html p>
Malheureusement, comme un petit groupe de développeurs internes, nous ne pouvons justifier le coût de Typemock. Actuellement, nous ne faisons que écrire des méthodes que nous devons nous moquer de fonctions qui renvoient une booléenne et en attente de VB10.
dans Visual Studio 2010 Utilisez
serviceMock.Setup(Sub(c) c.MethodName(paramName))