我正在尝试为我的组合框组件编写更多单元测试,但更具体地说,我想模拟键盘输入到组合框。我尝试过使用 React 的测试库的键盘事件(例如:fireEvent.keyDown),但是当我在触发事件后进行调试时,输入值永远不会改变。
理想情况下,我想在我的单元测试中使用 React 的测试库,但如果还有其他更容易的东西,我会接受它。
基本上,我只想知道:如何为组合框组件的基本功能编写单元测试?
编辑:现在如果我在 ComboBox 道具中将 autoComplete 设置为“关闭”,我将无法进行单元测试。我在“A”上尝试过 keyDown,然后在“Enter”和“Tab”上尝试过 keyDown,但无济于事。更新了下面的代码片段。
const dropdownOptions: IComboBoxOption[] = [{ key: "A", text: "A" }, { key: "B", text: "B" }];
const dropdown = <ComboBox options = { dropdownOptions } autoComplete = { "off" }></ComboBox>
//in the unit test
it("Should change input using keyboard events", () => {
const { getByRole } = render(dropdown);
const inputNode = getByRole("combobox");
fireEvent.keyDown(inputNode, { key: "A", code: "KeyA" });
expect(inputNode.getAttribute("value")).toBe("A");
})