2009-08-28 7 views
3

J'essaie d'utiliser Guice pour un framework de test basé sur TestNG. Ce framework analyse la classe de test pour les dépendances et leur fournit l'élimination de la nécessité de les construire dans des tests.Comment définir des liaisons dynamiques et just-in-time avec Guice?

Guice est tout au sujet de l'injection et je pense que c'est un bon ajustement pour le cadre. Mais la question est de savoir comment définir les liaisons après avoir créé l'injecteur? Cela est nécessaire car les tests peuvent remplacer les liaisons pour remplacer les implémentations par défaut par des simulacres. En plus de cela, je veux deviner l'implémentation à l'exécution dans certains cas basés sur des conventions de noms de classes. Cela ressemble à la fonction de liaison Just-in-type. Mais comment puis-je fournir mon propre fournisseur de liaison en juste-à-temps?

Répondre

3

Ce type de comportement dynamique n'est pas pris en charge immédiatement, mais vous pouvez réaliser beaucoup de choses avec la réécriture de module. Jetez un oeil à Guiceberry, qui implémente déjà la substitution de faux tests JUnit. (Et pensez à leur soumettre un patch TestNG, ils adoreraient ça!)

+0

Je suppose aussi que je peux trouver et instancier la classe désirée par moi-même (la plupart d'entre eux ont des constructeurs sans paramètres) et que l'injecteur lui injecte ses membres – artemb