javascript - 有没有办法测试一个空的 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
,在这种情况下,是假的,什么是多余的,因为我知道它是当我通过道具传递它时.
解决方案
推荐阅读
- flask - 将列表传递给引导网格模板的有效方法
- c++ - 对象作为参数析构函数被调用但不是构造函数?
- reactjs - 如何使用 React Native 库使 Jest 测试用例适用于 React 组件?
- drools - 流口水规则中的输入不匹配
- azure - 当托管在 Linux 容器中时,ASP.NET Core 在 OAuth 质询中传递 HTTP(不是 HTTPS)重定向 URL
- django - self.client.get() 与 self.browser.get() 的用法
- excel - 无法从 VBA 正确打开网络驱动器
- node.js - 如何使用续集删除唯一选项
- javascript - 未捕获的 typeEroor:无法读取未定义的属性
- bash - 运行 if 语句时出现太多参数错误