2011-09-23 7 views
0

Je viens de C# de ruby ​​sur rails où j'ai fait TDD en utilisant Rspec et Mocha. Je cherchais à entrer dans un cadre moqueur et un poste de stackoverflow plus ancien m'a pointé vers MOQ et les rhinocéros. J'ai hésité à engager à autre et je cherche un peu de conseils ou des éclaircissements ou peut-être juste un pep talk ...Est-ce que je dois vraiment écrire mon code différemment afin que je puisse le tester?

Voici mes préoccupations étaient:

  • Rhino se moque semble être un peu hors de rendez-vous amoureux. Beaucoup d'exemples n'utilisent même pas de génériques car il semble qu'ils n'étaient pas disponibles lors de la création du framework.
  • Moq semble être moins puissant que les mockings Rhino et il semble que vous ayez besoin d'adapter vos classes afin de se moquer d'eux (soit ils doivent implémenter une interface ou toutes les méthodes doivent être virtuelles)

Suis-je loin de la base ici? Est-ce que je manque quelque chose? Y at-il un nouveau cadre cool que je devrais connaître ou dois-je juste ouvrir mon esprit et accepter que moquer n'est pas la même chose pour les langages statiques?

(Je sais que des questions un peu comme cela a été demandé dans le passé, mais ils semblent un peu démodées pour moi et je suis intéressant dans ce que les dernières nouveautés de la hanche sont)

+3

"Il semble que vous ayez besoin d'adapter vos classes pour les mocker" --- regardez à partir de la taille opposée, c'est ainsi qu'ils doivent être écrits, peu importe si vous testez votre code ou non. Les interfaces et les petites classes (à l'opposé des classes semblables à Dieu) rendent votre code moins couplé. – zerkms

Répondre

3

Le développement piloté par les tests n'a pas d'effet secondaire sur l'écriture de votre code d'une manière différente. Il est en fait destiné à vous faire écrire du code différemment. Nous pensons que vous écrivez mieux le code quand vous le testez. Vous êtes plus susceptible de cacher le code derrière une interface, ce qui est une bonne chose. Nous espérons que vous ferez beaucoup de choses d'une manière différente!

Sur Rhino/Moq ...

Rhino Mocks a reçu une révision de peu depuis qu'il a été écrit, vous n'avez plus d'utiliser l'enregistrement/syntaxe de lecture, vous pouvez utiliser la syntaxe Arrangez-Act-Assertion et il n'y a pas de chaînes magiques à voir.

Rhino Mocks - Arrange Act Assert Syntax

En Moq vous pouvez railler les interfaces et les classes. La syntaxe est plus simple et un peu plus expressive. Les bonnes nouvelles sont, je pense que vous regardez les deux meilleurs et essayant de choisir entre eux. Je ne pense pas que vous regretteriez de choisir l'un ou l'autre.

+0

Quelques bons points, merci pour votre contribution – Matthew

3

Je vote personnellement pour moq, mais la sélection de cadre moqueur est vraiment à vous. Je pense aussi que la testabilité est une bonne raison pour écrire votre code différemment. Les interfaces en général sont assez difficiles à surutiliser et à long terme, elles rendent probablement votre code plus facile à maintenir.

+0

"Je pense aussi que la testabilité est une bonne raison d'écrire différemment votre code" bon point, merci – Matthew

Questions connexes