【发布时间】:2019-08-06 06:10:41
【问题描述】:
我似乎找不到太多/任何关于我试图实现的非常简单的事情的文档
我有一个下拉菜单 display: none。当我单击一个复选框时,它变为display: block
我要断言的是,当我单击复选框时,它会显示下拉列表
expect(getByLabelText('Locale')).toHaveStyle(`
display: none;
`)
getByLabelText('Locale').checked = true
expect(getByLabelText('Locale')).toHaveStyle(`
display: block;
`)
代码按预期工作,但测试在第二个期望块上失败:它应该仍然是display: none
这是断言的正确方法吗?
当我单击复选框时,它会将我对象中的 2 个属性更新为 true,这就是它在代码中呈现的方式。当我手动通过这些属性时,测试仍然失败,但它在第一个期望中失败了。
我觉得我需要做一些类似setProps的事情
我现在尝试使用 renderWithRedux,但它似乎没有正确触发我的动作创建者?
fireEvent.click(queryByTestId('LocaleCheckbox')) 是尝试更新复选框的最佳选择吗?
【问题讨论】:
-
根据您的测试代码,在尝试更改“已选中”值之前,该复选框是不可见的。如果是
display: none;,用户如何能够点击复选框? -
不,下拉列表是无显示的,尽管现在是很久以前了哈。真的不记得了
标签: javascript reactjs react-testing-library