gpt4 book ai didi

testing - 如何在测试 react-dnd 时 stub 监视器?

转载 作者:行者123 更新时间:2023-11-28 19:49:21 24 4
gpt4 key购买 nike

我正在尝试测试我的 react-dnd 实现,在我的一个 drop 函数中,我使用 monitor.getInitialClientOffset() 函数来获取偏移量,我会喜欢 stub 这个方法返回一个特定的偏移量,然后我可以断言,但我无法弄清楚这一点。在我的测试中,我正在使用

const WrappedContext = wrapInTestContext(ContextArea);
const page = mount(<WrappedContext />);
const manager = page.get(0).getManager();
const backend = manager.getBackend();

// Couple finds to get the right source and target ids

backend.simulateBeginDrag([sourceId])
backend.simulateHover([targetId])
backend.simulateDrop();
backend.simulateEndDrag();

(这是使用来自 https://gaearon.github.io/react-dnd/docs-testing.html 的标准 wrapInTestContext)

drop 函数从测试后端传递给监视器,我在文档中看不到将它的 stub 版本传递给任何模拟方法的方法。

最佳答案

事实证明,您可以访问测试后端正在使用的监视器,然后像这样在其上 stub 方法:

  const manager = page.get(0).getManager();
const backend = manager.getBackend();
const monitor = manager.getMonitor();

sinon.stub(monitor, 'getInitialClientOffset', () => {
return {
x: 10,
y: 20,
};
});

sinon.stub(monitor, 'getDifferenceFromInitialOffset', () => {
return {
x: 2,
y: 4,
};
});

然后在 drop 函数中,这些值将用于您正在使用的任何类型的数学。

关于testing - 如何在测试 react-dnd 时 stub 监视器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38254121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com