2010-05-31 10 views
2

Y a-t-il un framework qui permet de se moquer des classes concrètes, pas seulement des interfaces dans java 1.4? J'ai un code tiers avec une classe singleton, où je veux changer une fonction, sans toucher au code original. C'est possible?Mocking with java 1.4

Répondre

2

JMock 1.2 le supporte. Détails here.

+0

Puis-je utiliser JMock sans tests unitaires? Comme je vois, je dois étendre la classe MockObjectTestCase? Dans ma situation, il serait très difficile d'utiliser des tests unitaires ... – Filip

+0

Vous n'avez pas besoin d'utiliser un test unitaire, mais certaines méthodes devront être exécutées. Je ne l'ai pas essayé, mais vous pouvez vérifier le code source de MockObjectTestCase et voir s'il fait quelque chose de spécial qui doit être appelé séparément. – Yishai

+0

Est-il possible de se moquer d'une classe afin que _all_ instanciation d'une classe créée après un moment est raillé? Je sais que c'est possible dans jmockit, mais c'est seulement disponible pour les plus récents. – Filip

2

Je recommande Mockito. Un port vers Java 1.4 est available here.

+0

Je suis en train d'utiliser Mockito avec Java 1.4 et a couru dans un problème presque immédiatement: 'MyClass myClass = (MyClass) maquette (MyClass.class); when (myClass.returnsInt()). ThenReturn (???); ' thenReturn renvoie uniquement un objet. Pas de problème avec l'auto boxing/unboxing dans Java 1.5, mais je ne sais pas comment contourner ce problème dans Java 1.4. – iboisver

+0

Grattez cela. Si j'écris 'when (myClass.returnsInt()). ThenReturn (new Integer (1));' on dirait que Mockito convertit l'entier en un int primitif sur un appel à 'returnsInt()' et tout "fonctionne". – iboisver