我有一系列针对使用 ECMAScript 国际化 APIJasmine
的服务运行的测试。AngularJs
当我通过 Chrome 运行它们时,它们都运行成功。但是,当我PhantomJS
通过 maven 运行它们时,它们都失败了,因为它似乎PhantomJs
还不支持 Internationalization API。
我使用 Intl 对象进行测试时收到的错误消息是:
1:ReferenceError:找不到变量:localizationService.js 中的 Intl
其余的测试都失败了。
测试很简单,如下所示:
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。
谢谢