相关疑难解决方法(0)

如何使用Jest测试输出是随机的函数?

如何使用Jest测试输出是随机的函数?像这样:

import cuid from 'cuid';  
const functionToTest = (value) => ({
    [cuid()]: {
        a: Math.random(),
        b: new Date().toString(),
        c: value,
    }
});
Run Code Online (Sandbox Code Playgroud)

所以输出functionToTest('Some predictable value')将是这样的:

{
  'cixrchnp60000vhidc9qvd10p': {
    a: 0.08715126430943698,
    b: 'Tue Jan 10 2017 15:20:58 GMT+0200 (EET)',
    c: 'Some predictable value'
  },
}
Run Code Online (Sandbox Code Playgroud)

javascript jestjs

18
推荐指数
4
解决办法
8789
查看次数

jest typescript - 模拟日期构造函数

我试图模拟new Date()返回一个特定的日期。以下代码:

const now = new Date()
jest.spyOn(global, 'Date').mockImplementation(() => now)
Run Code Online (Sandbox Code Playgroud)

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

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

unit-testing mocking spy typescript jestjs

12
推荐指数
3
解决办法
7968
查看次数

标签 统计

jestjs ×2

javascript ×1

mocking ×1

spy ×1

typescript ×1

unit-testing ×1