使用CodeceptJS在Chromium中运行自定义JavaScript吗?

问题描述 投票:1回答:1

我需要模拟CodeceptJS测试的时间。

我的React组件使用new Date()函数:

const Component = () => {
    console.log(new Date())
    return <h1>Im a component</h1>
}

我需要将该组件认为是2018年。对于我的Jest单元测试,这很简单:

import MockDate from 'mockdate';

MockDate.set('2018-10');

test("test something", ()=>{
    // Actual test here 
})

MockDate.reset(); 

我如何使用CodeceptJS进行相同操作?香港专业教育学院试图在测试中使用日期模拟模块:

Scenario('@test', async (CheckoutPage) => {
    const MockDate = require('mockdate');
    MockDate.set('2018-10');
     // Actual test here

});

我也尝试过依赖注射。 FIX-DATE猴子中的代码修补日期:

Scenario(
  '@test',
  (CheckoutPage, FixDate) => {
    FixDate();
    CheckoutPage.load();
    pause();
  }
).injectDependencies({ FixDate: require('./FIX-DATE') });

这些都不影响日期。

codeceptjs
1个回答
1
投票

问题在于CodeceptJS在浏览器内部运行,因此您需要覆盖浏览器的date对象。

© www.soinside.com 2019 - 2024. All rights reserved.