2015-11-11 50 views
2

我試圖用TimeShift.js來模擬標準的JavaScript日期。這樣我可以指定一個TimeZone而不是使用系統。在端到端使用TimeShift.js量角器測試

的文件似乎是很清楚,只是require庫,並使用它像這樣:

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

不過,我得到一個類型錯誤「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; 

編輯:

即使在運行平原tests.html從開發的全新副本馬上給我的未定義錯誤:

enter image description here

回答

2

在量角器E2E測試中使用它時,我遇到了與Timeshift相同的問題。

這是因爲時移不是一個節點模塊,因此它不能是必需的,所以我創建了一個叉,享受:https://github.com/cvakiitho/TimeShift-js/blob/master/timeshift.js

+0

好的謝謝!那麼我如何在我的e2e測試中使用你的分支呢? –

+0

我的意思是,放置TimeShift.js文件的最佳位置在哪裏?我如何在代碼中使用它? –

+0

我把它放在我的幫助程序目錄中: http://stackoverflow.com/a/32335796/2374517 但是我在E2E測試中使用它,下面是頁面對象模式,所以我不確定你的情況。 – cvakiitho

相關問題