use*_*363 1 node.js sequelize.js jestjs
我正在对用户模型进行单元测试。用户名不能为空。单元测试如下:
it('should reject no name', async () => {
name = '';
expect(await User.create(payload())).toThrow();
});
Run Code Online (Sandbox Code Playgroud)
当payload拥有除空名称之外的所有数据时,单元测试会抛出以下错误:
SequelizeValidationError: Validation error: Invalid validator function: unique,
Validation error: Invalid validator function: msg,
Validation error: column "cell" does not exist
Run Code Online (Sandbox Code Playgroud)
然而这里的断言.toThrow是不正确的,测试用例仍然失败。尝试了 toBeUndefine 但无济于事。对于此类错误,正确的断言是什么?
假设User.create返回一个Promise拒绝并抛出错误的:
await expect(User.create(payload())).rejects.toThrow(); // SUCCESS
Run Code Online (Sandbox Code Playgroud)
请注意,PR 4884toThrow的承诺已修复,因此如果您使用旧版本(22.0.0 之前),您将需要使用类似以下内容的内容:JesttoEqual
await expect(User.create(payload())).rejects.toEqual(expect.any(Error)); // SUCCESS
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |