J'essaie d'écrire mon premier test angulaire 6. J'ai un composant qui renvoie une liste de sociétés d'un service.
Il ressemble à ceci: p>
modèle p> composant.ts p> service p> Je voudrais vérifier que je peux voir la liste des entreprises du composant. Dans mes spécifices, j'ai essayé d'ajouter une apiser moquée selon https: / /angular.io/guide/testting#Component-with-a-dependency sans chance. P> Je suppose que le test devrait ressembler à ceci, mais j'ai des problèmes réellement injectables le service moqué dans ce test. p>
3 Réponses :
La stratégie consiste à injecter un objet titulaire de lieu pour votre service. Dans le test, obtenez une référence à cet objet titulaire de lieu, puis ajoutez de fausses fonctionnalités qui seront appelées lors du test du composant.
Exemple ( i omis code qui n'appartient pas le point que j'essaie de faire < / em>) p>
Vous pouvez vous moquer de votre service: dans votre test, vous donnerez des entreprises code> à vous moquer de sorte que votre fonction est appelée, vous aurez vos entreprises. affiché.: p>
Dans votre exemple, le test de l'unité doit être assez simple à mettre en œuvre.
Cela devrait être quelque chose comme ça: p> Vous devez créer un fichier de test pour le composant et un pour le service.
Dans le test de service, vous devriez faire presque la même chose comme ci-dessus, mais vous devez initialiser la liste des entreprises, appeler la méthode et vérifier si le résultat est correct. P> Service.companyList = [C1, C2 ...] p> laissez res = service.getcompanies (); p> attendre (res) .toequal (service.companylist); p> ICI Vous pouvez trouver plus d'informations sur les tests de test et de l'unité. P > p>
J'ai oublié l'affectation de l'instance du composant de l'appareil au composant. Donc, sous la fixation = testez-la. CreateComponent (composant); , Ajouter un composant = Fixture.comPonEnStance;