首页 > 解决方案 > 有没有办法测试一个空的 React 道具是否没有被调用?

问题描述

我有一个接收可选onApply道具的 React 组件,如下所示:

export default function App({ onApply }) {
  const handleApply = () => {
    if (onApply) onApply();
  };

  return <button onClick={handleApply}>Apply</button>;
}

我正在尝试编写一个测试,如果该道具尚未提供给组件,则断言该道具是否未被调用。以下是我测试的当前代码:

describe("<App />", () => {
  it("should not apply if no `onApply` prop provided", () => {
    const wrapper = mount(<App />);

    // expect ???;
  });
});

我的问题是:我如何测试这种行为,因为onApply它必须是一个虚假的值,所以不能被监视(作为Simon 的存根文档)?

我的测试堆栈是 Enzyme、Chai 和 Sinon。

是一个有效的 Codesandbox。

另外,我检查了这个答案,这是我发现的最相似的问题,但是该问题中的建议是检查是否onApply,在这种情况下,是假的,什么是多余的,因为我知道它是当我通过道具传递它时.

标签: javascriptreactjstestingenzymesinon

解决方案


推荐阅读