Почему мой жасмин с указанной браузерной версией не работает?
Я настроил тесты жасмина для своего приложения. В моем приложении у меня есть JavaScript, который не должен работать в IE8:
var foo = Object.create(Array.prototype);
Когда я запускаю mvn jasmine:bdd и открываю тестовую страницу в Internet Explorer (с параметром browserMode, установленным в Internet Explorer 8), происходит сбой, как и ожидалось:
TypeError: Object doesn't support property or method 'create'
Тем не менее, когда я бегу:
mvn jasmine:test -DbrowserVersion=INTERNET_EXPLORER_8
Все мои тесты успешны. В журналах указывается, что browserVersion имеет значение INTERNET_EXPLORER_8.
Я ожидал, что оба дадут мне один и тот же результат. Это вызывает проблему с нашим тестированием ci, так как он выпустил js ошибки, которые я хотел отловить.
Должно ли это работать, как я ожидаю, и если нет, что я должен изменить?
Кроме того, это лучший способ, которым я знаю, как тестировать несколько браузеров. Есть ли лучший способ, который я скучаю?
РЕДАКТИРОВАТЬ
Коллега попытался разбить мои надежды на то, что browserVersion даже не уловит такую ошибку, и предположил, что он предназначен только для изменения заголовка, чтобы тесты могли охватывать также специфический для браузера javascript (блоки кода, которые выполняются только тогда, когда браузер это конкретная версия). Это точно?
1 ответ
Кажется очень точным, что jasmine проверяет свойство browserVersion и не изменяет внутреннюю часть работы js, а это означает, что причуды или каждый браузер не будут проверяться. Я успешно перешел на использование js-test-driver для моих тестов, которые могут запускать тесты jasmine в реальных браузерах. Это выглядит как правильный способ сделать это. Хотя, если вы начинаете новый путь по этому пути, я бы вместо этого посмотрел на Karma (ранее назывался testacular и созданный как улучшение js-test-driver).