如何在Protractor测试中覆盖新的Date() [英] How to override new Date() on Protractor tests
本文介绍了如何在Protractor测试中覆盖新的Date()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个应用程序,它改变了日期的行为。在我的模拟测试中,我需要覆盖 new Date()
函数来测试所有场景。有谁知道如何覆盖它?
I've an app that changes it's behaviour with the date. On my mock tests I need to override the new Date()
function to test all the scenarios. Does anyone know how to override it?
我已经尝试使用executeScript来更改返回值,但它不起作用。
I already tried to use the executeScript to change the return value but it doesn't work.
browser.driver.executeScript(''+
'Date = function(){return new Date(2012,0,20)};'
);
推荐答案
替换功能取决于已更换的原始日期,因此请保持在闭包中对它的引用,例如:
The replacement function depends on the original Date that's been replaced, so keep a reference to it in a closure, e.g.:
var Date = (function() {
var OldDate = Date;
return function (){
return new OldDate(2012,0,20);
}
}());
alert(new Date());
这篇关于如何在Protractor测试中覆盖新的Date()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文