gpt4 book ai didi

typescript - jest typescript - 模拟日期构造函数

转载 作者:行者123 更新时间:2023-12-03 15:31:35 26 4
gpt4 key购买 nike

我正在尝试模拟 new Date()返回特定日期。以下代码:

const now = new Date()
jest.spyOn(global, 'Date').mockImplementation(() => now)

给出编译错误: Argument of type '() => Date' is not assignable to parameter of type '() => string'. Type 'Date' is not assignable to type 'string' .

我认为原因是 jest 认为我在试图 mock Date()而不是 new Date() .确实, Date()返回一个字符串。我该如何解决这个问题?

最佳答案

好吧,我试过这个解决方案,它奏效了..

class MockDate extends Date {
constructor() {
super("2020-05-14T11:01:58.135Z"); // add whatever date you'll expect to get
}
}
在之前的每个测试中,我补充说:
// @ts-ignore
global.Date = MockDate;
这样,每当我调用一个包含 new Date() 的函数时,它都会返回我在上面 MockDate 类的构造函数中添加的日期!

关于typescript - jest typescript - 模拟日期构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60912023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com