我正在使用Jest,我想对对象数组进行断言。到目前为止,我已经能够成功使用此模式来断言一个对象数组(在本例中为DOM中的按钮)包括至少一个其标签和标题均为“ Edit”的对象。 (objectContaining部分确保我不必担心这些按钮可能具有的任何其他属性)
let buttons = [...element.shadowRoot.querySelectorAll('lightning-button')];
expect(buttons).toContainEqual(expect.objectContaining({label: 'Edit', title: 'Edit'}));
棘手的部分是当我设置了一个应隐藏“编辑”按钮的属性时,我想断言它不再位于数组中:
element.edit = true;
return Promise.resolve().then(() => {
// The Edit button should NOT display
expect(buttons).not.toContainEqual(expect.objectContaining({label: 'Edit', title: 'Edit'}));
})
开玩笑给我的失败看起来像这样:
Expected value: not ObjectContaining {"label": "Edit", "title": "Edit"}
Received array: [{"$$ShadowResolverKey$$": [Function shadowResolver],
"$$ShadowTokenKey$$": undefined,
"$fromTemplate$": true}]
正确的语法是什么?