Szukałem dokładnie to dzisiaj, i umieścić komentarz tutaj: https://github.com/adobe/brackets/issues/2752
składni, który został omówiony jest rozszerzeniem Jasmine aby umożliwić ponieważ należy dodać - tak byłbyś w stanie napisać:
expect(fields[i].element.exists()).toEqual(true).because(field[i].name + 'is expected to exist');
Jest to nadal przedmiotem dyskusji po kilku latach i może nie dojść do skutku. Innym sposobem, w jaki to zrobiłem, jest utworzenie niestandardowego mechanizmu dopasowującego. Generalnie myślę, że zniechęciłbym niestandardowego matchera bez pewności, że obejmuje on wszystkie bazy, ale w tym przypadku naprawdę sprawdzamy wartość prawdziwą/fałszywą, więc matcher nie jest zbyt przerażający.
Możemy utworzyć niestandardowe matcher z beforeEach:
beforeEach(function() {
var matchers = {
toEqualBecause: function(value, message) {
this.message = function() {
return "Expected '" + this.actual + "' to equal '" + value + "' because " + message;
};
return this.actual == value;
}
};
this.addMatchers(matchers);
});
Możemy wtedy użyć tego matcher umieścić wiadomość z naszych niepowodzeń jako takie:
expect(field[i].element.exists()).toEqualBecause(true, field[i].name);
co da wyjście awarii w tym nazwę pola jako taką:
Expected 'false' to equal 'true' because account_name
UWAGA: Widzę, że ludzie wciąż to znajdują. Później informacja od zespołu Jasmine jest to, że nie jest nieudokumentowana funkcja na oczekiwać - można to niestandardowy komunikat o awarii i po prostu działa:
expect(fields[i].element.exists()).toEqual(true, field[i].name + ' is expected to exist');
który jest dokładnie to, co było pierwotnie szukasz.
Niesamowite znalezisko! oczekuj (coś) .toBeFalsy ("should not ..."); działa też – ajd
nie działa –
Cześć! Na pewno powinieneś umieścić swoje ostatnie odkrycie na swojej odpowiedzi, więc jest to bezpośrednio dostępne (resztę zostaw jako historyczne logi poniżej). Dzięki. – Bob