2

私は JavaScript を使ったいくつかの作業を掘り下げ始めており、テスト可能な JS コードをどのように作成する必要があるかを感じようとしています。私のバックグラウンドは主に Java で、かなり慣れていますが、JavaScript の経験はありません。いくつか読んだ後、単体テスト フレームワークとして js-test-driver を使用するつもりでしたが、ここでも提案を受け付けています。Java では、私のアプローチは常に、何かを受け入れて何かを返す小さなメソッドに分解することでした... JavaScript では、DOM 操作と実際のロジックを 2 つの別個の関数に分離することで、同様のアプローチを取ると考えました。例えば:

function sumValues(valA, valB) {
return (valA + valB);
}

function displayResult(result) {
document.getElementById('result').innerHTML = 'result';
}

したがって、ビジネスロジックは簡単にテストできます。

私はここで正しい軌道に乗っていますか、それとももっと良い方法がありますか? JS固有のこのトピックに関する推奨読書はありますか? アイデアをありがとう

4

1 に答える 1

3

コードを論理単位に分割することは、もちろん JavaScript でも適用されます。コードをどのように構造化し、再利用性を整理するかについては、さまざまな方法から選択できます。ここにリストするには多すぎますが、個人的な好みの問題でもあります。プロトタイプ継承から疑似古典継承へ。backbone.jsangular.jsrequire.jsyuigoogle クロージャーなどのフレームワークを使用する...

あなたの例に関しては、コードを別々にテスト可能なビューとコントローラーに分離し始め、ビューだけがDOMを操作するようになるでしょう。詳細については、 backbone.jsをチェックしてください。

JavaScript でのテスト駆動開発を始める (そして同時に JavaScript についても学ぶ) のに本当に役立った本は、Christian Johansen によるTest-Driven JavaScript Developmentです。

私は JsTestDriver を使用しています。これは優れたソフトウェアであり、間違いなく使いやすいものです。しかし、大規模に使用する前に、他の製品も評価します。JsTestDriver での開発は最近非常に遅いためです..Buster.JSは有望に見えます。もう 1 つの興味深いランナーは、 MochaJasmineなどのさまざまなテスト フレームワークを使用できるTestemです。

また、モッキング ツールキットとしてSinon.JSをお勧めします。

于 2012-08-28T08:07:23.160 に答える