Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 用量角器模拟日期_Angular_Typescript_Protractor_E2e Testing - Fatal编程技术网

Angular 用量角器模拟日期

Angular 用量角器模拟日期,angular,typescript,protractor,e2e-testing,Angular,Typescript,Protractor,E2e Testing,我正在使用量角器为我的角度(4)应用程序编写一套端到端测试。我的后端配置为连接到生产数据库的精确副本,但填充了虚拟数据 我的前端很大一部分是正确显示历史数据。目前,有一个特定的时段有我想要显示的数据。但是,很明显,在一周内,我的“每周”视图将所有数据显示为0 是否有可能欺骗量角器,使其认为日期在我为虚拟数据设定种子的时间段内,因此显示的数据是可预测的 更新: 我现在有了这个代码: import * as moment from 'moment'; describe('Login & H

我正在使用量角器为我的角度(4)应用程序编写一套端到端测试。我的后端配置为连接到生产数据库的精确副本,但填充了虚拟数据

我的前端很大一部分是正确显示历史数据。目前,有一个特定的时段有我想要显示的数据。但是,很明显,在一周内,我的“每周”视图将所有数据显示为0

是否有可能欺骗量角器,使其认为日期在我为虚拟数据设定种子的时间段内,因此显示的数据是可预测的

更新: 我现在有了这个代码:

import * as moment from 'moment';

describe('Login & Home Page', () => {
    beforeEach(() => {
        let date = moment('08-03-2017');
        moment = () => { return date };
    })
// ...

如果在代码中使用
Date
构造函数,则可以重写该构造函数

var d = new Date(2017, 5, 14);
Date = function(){return d;};
取决于您在代码中获取日期的方式,但返回所需日期的方式是相同的

如果您使用的是力矩,则覆盖与您使用的完全相同的函数

let date = moment(2017, 6, 14);
moment = () => {return date};


嗯,我想真正的方法应该是
jasmine.clock.mockDate()

var today = moment('2015-10-19').toDate();
jasmine.clock().mockDate(today);
expect(moment().valueOf()).toEqual(today.valueOf());

我正在使用
moment()
构造函数。我不明白的是我应该在哪里重写这个函数?在我的量角器测试的
beforeach()
中?如果希望将其应用于套件中的所有项目,可以在
beforeach()
中执行,如果希望此更改仅限于单个测试,也可以在
it
中执行。两者都应该起作用。我希望您使用的是全球
时刻
。另外,请确保为您在代码中使用的其他
moment
函数提供别名,否则它将失败。好的,如果您看到我更新的问题,您可以看到有什么问题,但是,我得到编译器错误
[ts]无法分配给“moment”,因为它不是变量,如何在TypeScripttry
const-moment=
let-moment=
中做到这一点,如果我这样做,那么在声明前使用
块作用域变量'moment'。
let-date=moment(2017,6,14)行?
var today = moment('2015-10-19').toDate();
jasmine.clock().mockDate(today);
expect(moment().valueOf()).toEqual(today.valueOf());