jasmine.clock()。mockDate(...)不适用于Angular E2E测试

时间:2019-02-02 08:39:07

标签: angular jasmine protractor e2e-testing

根据我的研究(例如Mocking the date in Protractor),我们应该能够在带有量角器的Angular E2E测试中使用以下几行来伪造当前日期:

it('should display the fake date put in place via jasmine.clock().mockDate()', async () => {
  jasmine.clock().install();
  jasmine.clock().mockDate(new Date(2040, 0, 1));

  await page.navigateTo();
  const result = await page.getCurrentDateDisplayed();
  expect(result).toEqual('2040-01-01');

  jasmine.clock().uninstall();
});

但是,这似乎对我不起作用,我也不明白为什么。测试输出指示伪造的日期并没有在所有的工作,它使用当前日期:

Expected '2019-02-02' to equal '2040-01-01'.

下面也将app.component.ts和相应的HTML模板:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
  <div style="text-align:center">
    <h1>
      Current date is <span class="e2e-curr-date">{{currentDate | date:'yyyy-MM-dd'}}</span>.
    </h1>
  </div>`,
})
export class AppComponent {
  currentDate = new Date();
}

下面也是完整的源:https://github.com/baumgarb/ng-e2e-test-w-jasmine-clock

0 个答案:

没有答案