我需要模拟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在浏览器内部运行,因此您需要覆盖浏览器的date对象。