Mockito pour les Objets en Scala
Je suis en utilisant Scala 2.10, specs2 et Mockito. Je veux, à se moquer de scala.io.Source.fromURL(). Le problème semble être fromURL() est une fonction dans io.Source de l'objet.
val m = mock[io.Source]
m.fromURL returns io.Source.fromString("Some random string.")
C'est assez simple fantaisie dans une Unité de test. Pourquoi n'est-il pas de travail?
Merci!
OriginalL'auteur Marius Stroe | 2013-05-08
Vous devez vous connecter pour publier un commentaire.
Au lieu de se moquer, vous pouvez essayer de
spying
comme suit:Ou l'on pourrait s'en moquer comme suit:
Mais alors, comment utilisez-vous
Source
dans la classe que vous testez? Si vous aviez un exemple de classe comme ceci:Puis dans afin de prendre avantage de se moquer/espionnage, vous auriez à la structure de votre classe comme ceci:
Et puis votre test aurait pour ressembler à quelque chose comme ceci:
Dans le monde Java, les méthodes statiques sont le fléau de moqueries. Dans le Scala monde, les appels vers les objets peuvent également être difficile à traiter pour les tests unitaires. Mais si vous suivez le code ci-dessus, vous devriez être en mesure de bien se moquer d'un objet en fonction de la dépendance dans votre classe.
Pourquoi se moque de mkString de io.BufferedSource pas de travail? C'est une méthode d'instance: gist.github.com/Marius-Stroe/5545901
J'obtiens une erreur: Mockito ne peut plus se moquer/spy suivantes: - final classes anonymes classes - types primitifs
Est-il possible de faire quelque chose de similaire avec l'objet?
Hey @GismoRanas comment vous résoudre ce problème, je suis confronté à la même erreur.
OriginalL'auteur cmbaxter