web-dev-qa-db-fra.com

comment tester si une chaîne NE correspond PAS à l'aide d'un rapporteur

Je migre ma suite de tests karma-ng-scenario Vers le rapporteur. Je voudrais faire quelque chose comme

// karma-ng-scenario
expect(element('legend').text()).not().toBe("LOGIN_CONNECT");

de la manière du rapporteur. Mais il semble qu'il n'y ait pas de fonction not().

J'utilise angular-translate Pour lier la chaîne LONGIN_CONNECT dans plusieurs langues et je veux tester si la chaîne est traduite.

Plus globalement, existe-t-il un moyen de tester si quelque chose est différent? ... n'a pas de classe, n'existe pas sur la page, n'est pas sélectionné, ...

18
Sylvain

Il vaut vraiment la peine de regarder les documentation API . Je les ai ouverts presque tout le temps. Il existe de nombreuses fonctions de pilote Web que vous pouvez utiliser comme isEnabled(), isDisplayed(), isSelected() etc. Protractor utilise la syntaxe Jasmine pour que vous puissiez utiliser '.toBe (false) "affirmer que les choses sont fausses. Pour vérifier les cours, vous pouvez faire quelque chose comme:

expect(myElement.getAttribute('class')).toContain('my-class-name');

Pour comparer des chaînes et affirmer qu'elles ne correspondent PAS, vous pouvez utiliser .not. Jasmine docs dites:

Les critères de chaque match peuvent être inversés en ajoutant .pas:

attendez (x) .not.toEqual (y); compare les objets ou primitives x et y et passe s'ils ne sont pas équivalents

25
preeve

J'utilise les éléments suivants pour vérifier la non correspondance:

expect(element('legend').text() === "LOGIN_CONNECT").toBe(false);
4
Yap Wee Sing

Vous pouvez utiliser quelque chose comme:

expect(model.getText()).not.toContain('abcdef');

Il y a un .not propriété de nos jours.

2
Mark Rogers