как следует из названия - есть ли разница между (например)
expect(element).isDisplayed().toBeTruthy();
а также
expect(element).isDisplayed().toBe(truth);
и если да то какая разница?
Благодарность
как следует из названия - есть ли разница между (например)
expect(element).isDisplayed().toBeTruthy();
а также
expect(element).isDisplayed().toBe(truth);
и если да то какая разница?
Благодарность
Многие вещи Truthy
(т.е. все, что не является одним из: false, 0, "", undefined, null, NaN). Так
expect('apple').toBeTruthy();
проходит. Но:
expect('apple').toBe(true);
терпит неудачу.
При этом, если вы знаете, что тестируете логическое значение, для меня использование toBeTruthy
выглядит лучше.
toBe
проходит только в том случае, если это прямое совпадение, но toBeTruthy
проходит для любого истинного значения. Возможно, прочитайте это: safaribooksonline.com/library/view/ javascript-тестирование-с/
- person hankduan; 24.02.2015
true
, вы можете вообще не тестировать его. Смысл тестирования заключается в том, чтобы справляться с неожиданными ситуациями. Таким образом, используйте toBe(true)
так же, как вы всегда использовали бы ===
вместо ==
.
- person Vincent; 29.09.2016
Хотя это не новый вопрос, я подумал, что он заслуживает точного ответа.
expect('apple').toBe(true);
оценивается как «яблоко» === true. (фактическое === ожидаемое в коде жасмина) я бы предпочел
expect('apple').toBe('apple');
Таким образом, вы знаете, что не получаете «апельсин». С другой стороны.
expect('apple').toBeTruthy();
оценить «яблоко» как !! «яблоко» (!! фактическое значение в коде жасмина). Так что не не "яблоко"