8
votes

Mocking VB.NET Méthodes avec MOQ

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


0 commentaires

4 Réponses :


1
votes

Il semble que Ce scelle la transaction.

genre une insuffisance - enquête m'a pris beaucoup de temps. : /


0 commentaires

6
votes

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. fonction 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.

dans le version suivante de vb.net < / a> (vb10), la langue prendra en charge sous lambdas et devrait aider dans ces cas.

Il semble que d'autres personnes soient aussi Avoir des problèmes de degrés divergents avec le Combinaison MOQ / VB.NET actuelle.


1 commentaires

:( 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!



0
votes

Typemock prend en charge l'API conviviale VB.NET à cette fin: http://site.typemock.com/vbpage/ 2009/9/10 / unité-test-vbnet.html


1 commentaires

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.



10
votes

dans Visual Studio 2010 Utilisez

serviceMock.Setup(Sub(c) c.MethodName(paramName))


0 commentaires