次に例を示します。私の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アプローチはどうなりますか?コードの前にテストを書くことは必須ですか、それともオプションですか?