web-dev-qa-db-fra.com

Les tests de jasmin vérifient si le html contient du texte et renvoie un booléen

expect(view.$el.html()).toContain('Admin');

La vue contient le mot "Admin", donc je m'attendais à ce qu'il revienne vrai. Comment puis-je atteindre cet objectif?

expect(view.$el.html()).toContain('Admin');

Cela renvoie undefined. Comment puis-je le faire retourner true?

<header class="main">
  <div id="heading">
    <ul class="header-view right">
      <li class="inline"><a href="#link" class="button help-btn tab-btn"><span>  </span>Help</a></li>
      <li class="inline last"><a href="#og" class="button admin-btn tab-btn expand-admin"><span></span>Admin</a></li>
    </ul>
  </div>
</header>

C'est ce qui est renvoyé de view.$el.html

Veuillez aider.

38
Spdexter

De la documentation de Jasmine:

Le matcher 'toContain' est pour trouver un élément dans un Array

Vous essayez de trouver une chaîne à l'intérieur d'une chaîne, donc je ferais quelque chose comme ceci:

expect(view.$el.html().indexOf('Admin') !== -1).toBe(true);
14
Lee Bailey

toContain() maintenant peut en fait être utilisé pour la sous-chaîne dans les vérifications de chaînes :

expect(view.$el.html()).toContain('Admin');
72
alecxe