Javascript 文档域的D.O.H.测试
我正在尝试为一个函数编写一个D.O.H.测试,该函数确定当前环境是在生产机器上运行还是在本地开发机器上运行。函数通过分析document.domain属性中的字符串来实现这一点。是否有一种方法可以通过编程方式设置document.domain属性,以便在从D.O.H.测试调用函数时,可以分析我指定的域?以下是函数:Javascript 文档域的D.O.H.测试,javascript,html,testing,dojo,doh,Javascript,Html,Testing,Dojo,Doh,我正在尝试为一个函数编写一个D.O.H.测试,该函数确定当前环境是在生产机器上运行还是在本地开发机器上运行。函数通过分析document.domain属性中的字符串来实现这一点。是否有一种方法可以通过编程方式设置document.domain属性,以便在从D.O.H.测试调用函数时,可以分析我指定的域?以下是函数: isProdEnvironment = function() { var nonProdRegExp = new RegExp( 'localhost|dev|tes
isProdEnvironment = function() {
var nonProdRegExp = new RegExp( 'localhost|dev|test|perf' );
var isNonProd = nonProdRegExp.test( document.domain );
return ! isNonProd;
};
在我的测试案例中,我想做如下事情:
document.domain = 'someProdEnvironment.com';
doh.assertFalse (isProdEnvironment());
但是,每次我这样做时,测试总是通过,因为
isProdEnvironment()
函数中的document.domain调用一直在检索我的测试正在运行的开发机器的域(即“localhost”).为什么不使用window.location.hostname
?我的理解是window.location.hostname
和document.domain
相当于“EEP检索我的测试正在运行的开发机器的域(即“localhost”)。”等等,您正在localhost上运行此页面,并想知道为什么它总是返回true?在开发过程中,我总是在localhost上运行它,但我需要确保该函数在不同的域(即不是localhost)上工作。这就是为什么我想知道是否可以通过编程方式设置window.location.hostname或document.domain。我相信如果这是可写的,那将是一个安全问题。为什么不在测试中使用正则变量而不是document.domain?