繁体   English   中英

在端到端 Protractor 测试中使用 TimeShift.js

[英]Using TimeShift.js in end to end Protractor tests

我正在尝试使用TimeShift.js来模拟标准的 Javascript 日期。 这样我就可以指定一个时区而不是使用系统时区。

文档似乎很清楚,只require库并像这样使用它:

Date = TimeShift.Date;
TimeShift.setTimezoneOffset(-300);
TimeShift.setTime(1275393600000);
new Date().toString();
// => "Tue Jun 01 2010 17:00:00 GMT+0500"

但是我得到一个类型错误“未定义不是一个函数”。 我在这里做错了什么? 这是完整的step.js文件:

var chai        = require('chai');
var chaiPromise = require("chai-as-promised");
var HttpBackend = require('http-backend-proxy');
var utils       = require('../utils.js');
var timeshift   = require('../TimeShift.js');
var expect      = chai.expect;
chai.use(chaiPromise);
var fs = require('fs');

var steps = function() {
    var proxy = null;

    this.Before(function(scenario, callback) {
        proxy = new HttpBackend(browser);

        Date = timeshift.Date;
        timeshift.setTimezoneOffset(-300);
        timeshift.setTime(1275393600000);

        callback();
    });

    this.After(function(scenario, callback) {
        proxy.onLoad.reset();
        callback();
    });
}

module.exports = steps;

编辑:

即使直接从新的开发副本运行普通的 tests.html 也会给我未定义的错误:

在此处输入图片说明

在量角器 E2E 测试中使用 Timeshift 时,我遇到了同样的问题。

是因为Timeshift不是节点模块,所以不是必须的,所以我创建了一个fork,欣赏: https : //github.com/cvakiitho/TimeShift-js/blob/master/timeshift.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM