这是一个示例:我的Web应用程序包含可拖动元素。拖动元素时,浏览器会生成“重影”。我想在拖动时删除“重影”,并为此测试编写了一个测试。
我的问题是,我最初不知道如何解决此错误,而编写测试的唯一方法是在修复它之后。
在诸如之类的简单函数中let sum = (a, b) => a - b
,您可以在编写任何代码之前编写一个关于为什么sum(1, 2)
不相等的测试3
。
在我描述的情况下,我无法测试,因为我不知道验证是什么(我不知道断言应该是什么)。
所描述问题的解决方案是:
let dataTransfer = e.dataTransfer
let canvas = document.createElement('canvas');
canvas.style.opacity = '0';
canvas.style.position = 'absolute';
canvas.style.top = '-1000px';
dataTransfer.effectAllowed = 'none';
document.body.appendChild(canvas);
dataTransfer.setDragImage(canvas, 0, 0);
我不知道这是解决方案。在网上找到解决方案后,我什至无法编写测试,因为我唯一可以知道它是否真正有效的方法就是将这段代码添加到我的代码库中,并通过浏览器进行验证是否达到预期的效果。测试必须在代码之后编写,这与TDD背道而驰。
TDD如何解决此问题?在代码之前编写测试是强制性还是可选的?