web-dev-qa-db-fra.com

Angular 2 tests - obtenir les styles d'élément DOM

Je veux tester la fonctionnalité de mon bouton de masquage dans mon Angular 2 (les tests sont écrits en Jasmine), j'ai donc besoin de vérifier la valeur de la propriété display de l'élément pertinent. Comment obtenir cette propriété en utilisant debugElement d'Angular? Code de test:

let input = fixture.debugElement.query(By.css('input'));
expect(input.styles['visibility']).toBe('false');

J'obtiens l'erreur: Attendu non défini comme étant "faux".

14
user6251216

Pour quiconque tombe sur cet exemple, la solution à ce problème spécifique avec display est la propriété hidden sur le debugElement. Il contiendra true si l'élément est masqué et false sinon.

0
user6251216

J'avais le même problème. Le DebugElement.styles est toujours un objet vide même si je donne explicitement du style à cet élément (peut-être un bug dans angular?). Je préfère donc obtenir cela du navigateur native element directement:

let input = fixture.debugElement.query(By.css('input'));
expect(input.nativeElement.style.visibility).toBe('false');
6
LeOn - Han Li