バージョンなど
{
"devDependencies": {
"enzyme": "^3.7.0",
"jest": "^23.6.0"
}
}
例
以下は2番目のItem
をクリックすると、次の状態ではaria-selected={true}
となる事を確認しようとしていたテストです。しかし、これは通りません。
const secondItem = mount(Component)
.find(Item)
.at(1);
secondItem.simulate('click');
expect(secondItem.prop('aria-selected')).toBeTruthy();
解決
チェックする時に再度wrapper
から対象の要素を取得したものを使えば更新された状態のItem
が取れます。こうすれば、通ります。
const secondItem = mount(Component)
.find(Item)
.at(1);
secondItem.simulate('click');
expect(
wrapper
.find(Item)
.at(1)
.prop('aria-selected')
).toBeTruthy();
おまけ
一応setTimeout
を使っても通るよおです。
const secondItem = mount(Component)
.find(Item)
.at(1);
secondItem.simulate('click');
setTimeout(() => {
expect(
wrapper
.find(Item)
.at(1)
.prop('aria-selected')
).toBeTruthy();
}, 0);