【发布时间】:2022-02-10 16:11:02
【问题描述】:
我的 OrderModuleHeader 是一个可点击的 div,点击后会呈现 div,如下所示:
const [orderModuleIsOpen, setOrderModuleIsOpen] = useState(true);
render (
<div>
<OrderModuleHeader data-testid="orderModuleHeaderButton"
onClick={() => setOrderModuleIsOpen(!orderModuleIsOpen)}
>
<NavigationArrow>
<FontAwesomeIcon
icon={orderModuleIsOpen ? faChevronUp : faChevronDown}
className="fa-xs"
/>
</NavigationArrow>
</OrderModuleHeader>
{orderModuleIsOpen && (
<OrderModuleBody>Some content</OrderModuleBody>
)
</div>)
所以div OrderModuleBody只有在我们点击按钮的时候才会显示出来。
我通过以下方式开始测试:
describe('Expand body button', () => {
it('should render OrderModuleBody when clicked', () => {
const button = screen.getByTestId('orderModuleHeaderButton');
fireEvent.change() ...
});
}
我意识到我让 div 可点击,在测试中我称之为按钮。
我不知道我到底需要在 fireEvent 中写什么来测试 OrderModuleBody (div) 是否在点击时呈现。
注意:我不允许从 Enzyme 引入浅层方法或使用除 Jest、React 测试库之外的任何其他测试框架。
感谢任何建议。
【问题讨论】:
标签: reactjs unit-testing testing jestjs react-testing-library