Почему мой жасмин с указанной браузерной версией не работает?

Я настроил тесты жасмина для своего приложения. В моем приложении у меня есть 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).

Другие вопросы по тегам