Kar*_*mar 7 unit-testing reactjs react-testing-library react-hooks
好的,我有一个需要at-least10 个字符的输入字段,它启用了显示 的按钮Save & Next。
如果description.length < 10,则它保持禁用状态。这在用户界面中运行良好。\n但我无法为其编写测试。
test(\' Disables the save and next button if description < 10\', () => {\n render(<StepOne />, { initialState });\n const input = screen.getByLabelText(/description/i);\n fireEvent.change(input, { target: { value: \'123456\' } }); // Length < 10\n const button = screen.getByText(\'Save & Next\');\n console.log(button.innerHTML);\n expect(button).toBeDisabled(true);\n });\nRun Code Online (Sandbox Code Playgroud)\n错误:
\nexpect(element).toBeDisabled()\n\n \xe2\x9d\x8c Received element is not disabled:\n <span class="MuiButton-label" />\nRun Code Online (Sandbox Code Playgroud)\n我想知道我在这里缺少什么
\n如果您这样做debug,您将看到 MUI 如何呈现禁用按钮:
<button
class="MuiButtonBase-root MuiButton-root MuiButton-text Mui-disabled Mui-disabled"
disabled=""
tabindex="-1"
type="button"
>
<span class="MuiButton-label">Save & Next</span>
</button>
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用.closest以下方式访问button:
const button = screen.getByText('Save & Next').closest("button");
expect(button).toBeDisabled();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6433 次 |
| 最近记录: |