只是检查我们是否正在导出对象失败,如下所示:
import * as Foo from './foo';
describe('Foo', () => {
test('should export an object', () => {
expect(Foo).toBeInstanceOf(Object);
});
});
收到此错误:
虽然我可以使用解决方法typeof
:
import * as Foo from './foo';
describe('Foo', () => {
test('should export an object', () => {
- expect(Foo).toBeInstanceOf(Object);
+ expect(typeof LivingAppsCoreReact).toEqual('object');
});
});
我想了解why笑话定义了Object
构造函数不是...Object
构造函数。
检查对象是否正在导出实际的密钥 ✅
Env:
$» npm ls jest 1 ↵
[email protected]
├── [email protected]
└─┬ [email protected]
└── [email protected] deduped
这可能是 Jest/Node 方面的错误,因为 Jest 环境上的全局变量与 Node 的不同,请参阅:
- https://github.com/facebook/jest/issues/2549
- https://github.com/nodejs/node/issues/31852
- https://github.com/nodejs/node/issues/46558
当您使用默认导出时,导出元素的类型为Object,然后当您将其与“Jest 的对象类型”进行比较时,测试失败,因为它们处于不同的上下文中。
这也与以下行为有关:https://stackoverflow.com/a/75524385/5078746
在您的情况下,如果您使用命名导出(例如export const Foo = {...}
)这将导致 Jest 在相同的上下文中评估您的对象。
我的意思是从
import * as Foo from './foo';
To
import { Foo } from './foo';
或者,您可以使用以下命令检查对象属性.toMatchObject(object)而不是检查对象是否是对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)