У меня есть серия тестов Jasmine
, работающих с сервисом AngularJs
, который использует API интеркализации ECMAScript. Они запускаются успешно, когда я запускаю их через Chrome. Однако, когда я использую PhantomJS
для запуска их через maven, все они терпят неудачу, поскольку кажется, что PhantomJS
не поддерживает API интернационализации.
Сообщение об ошибке, которое я получаю для тестов с использованием объекта Intl:
1: ReferenceError: не удается найти переменную: Intl в localizationService.js
И остальные тесты просто терпят неудачу.
Тесты просты и выглядят следующим образом:
it('Format date with en-us locale', (function (){
var date= "06/13/2013"
expect(service.date(date,'en-us')).toEqual("6/13/2013");
}))
а методы в сервисе (localizationService.js) - простые обертки вокруг Intl API:
function getCurrentTimeZone(){
return Intl.DateTimeFormat().resolved.timeZone
}
function date(dateInput,locale,options){
// some other stuff
// ...
if (locale) {
return _date.toLocaleDateString(locale,options);
} else {
return _date.toLocaleDateString();
}
}
Мои вопросы:
1- Является ли мое предположение правильным, что PhantomJS v1.9.2
не поддерживает ECMAScript internationalization API
? Нужно ли это подтвердить?
2 Как я могу подойти к решению этой проблемы? Мне нужно запустить мои тесты через maven, и у меня будет больше тестов, попадающих в мой локализационный интерфейс API так или иначе.
Спасибо