模拟特定测试中的导航器语言
Mock navigator language in specific tests
我正在使用Jasmine测试JavaScript代码,我想知道是否有办法为特定测试设置导航器语言(或浏览器语言)?
如在javascript中模拟用户代理中所述?,你可以:
navigator.__defineGetter__('language', function(){
return 'foo';
});
或者,你可以使用更现代的:
Object.defineProperty(navigator, 'language', {
get: function() {return 'bar';}
});
@abendigo的答案有效,但当您试图两次否决属性时,它确实会显示"无法重新定义属性"。
在他链接到的帖子中,他们建议添加configurable: true
,所以:
Object.defineProperty(navigator, 'language', {
get: function() { return 'bar'; }, // Or just get: () => 'bar',
configurable: true
});
顺便说一句,getter不是必须的,你也可以使用一个值表示法:
Object.defineProperty(navigator, 'language', {
value: 'bar',
configurable: true
});
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- angular 1.5应用程序中的导航栏
- 无法从jquery Mobile导航栏重定向到另一个页面
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 导航到特定事件的另一个变量页面
- MVC 3页面导航和使用javascript传递参数
- 如何在react js中从一个页面导航到另一个页面
- 导航栏没有调整到浏览器屏幕的大小
- 显示放大镜弹出窗口时隐藏导航内容
- DataTable按下键选择扩展/导航
- 正在检测导航到<a name=“;最新主题”></a>
- 带有url的单页网站导航
- 父页面的角度路由器导航高亮显示
- 如何正确编程jQuery动画与平滑(导航栏)
- 动态更改'汉堡包'导航取决于BG图像
- 模拟特定测试中的导航器语言
- Vim:我需要手动解析一种语言,如果我'我试图在导航
- 如何javascript获得操作系统语言在Chrome.不是浏览器的语言.(导航器.语言是浏览器语言!)
- 如何使用Backbone.js来增强多语言网站导航