我尝试使用TimeShift.js来模拟标准的Javascript日期。这样我就可以指定TimeZone而不是使用系统。
文档似乎非常清楚,只是require
库并像这样使用它:
Date = TimeShift.Date;
TimeShift.setTimezoneOffset(-300);
TimeShift.setTime(1275393600000);
new Date().toString();
// => "Tue Jun 01 2010 17:00:00 GMT+0500"
但是我得到了一个TypeError" undefined不是一个函数"。我在这里做错了什么?这是完整的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;
修改
即使直接从一个新的开发副本运行plain tests.html也会给我一个未定义的错误:
答案 0 :(得分:2)
在量角器E2E测试中使用时,我遇到了与Timeshift相同的问题。
因为Timeshift不是一个节点模块,所以它不是必需的,所以我创建了一个fork,享受:https://github.com/cvakiitho/TimeShift-js/blob/master/timeshift.js