5

最新の Web テクノロジに対応するために、空き時間に単純な HTML5 + JavaScript (jQuery) アプリを作成しようとしています (実際には、より高度な C# バックエンドのものです)。

過去10年ほどやってきたのと同じ方法、つまりTDDスタイルで開発したいと思っています。

HTML/JavaScript の TDD/BDD/AcceptanceTDD の世界に慣れていないので、私の質問は次のとおりです。ブラウザーで Web ページに対するテストを作成するための優れたフレームワークなどはありますか決定的なプラス)?

私が JavaScript を使いたい理由は 2 つあります。1. JavaScript をもっと学びたい。 2. 開発と同じ言語をテストにも使いたい。

それ以外の場合は、C# のスキルを使って、Selenium、WatiN、または同様のフレームワークを使用できます。

MSDN でJasmineQUnit 、およびjQuery を使用した自家製のソリューションを見つけましたが、フローや複雑さを感じることはできないため、推奨事項や直接の経験は大歓迎です。

4

5 に答える 5

8

JS Test Driverは、私が今読んでいる O'Reilly の Javascript TDD 本で推奨されているフレームワークです。私は実際にはまだそれで遊ぶ機会があまりありませんが、

  • JSテストに関する本を書いた男がそれを勧めている
  • 非常に優れた機能セットを備えています(複数のブラウザで実行される自動テストが重要です)
  • それはGoogleから来ています(好きか嫌いか、彼らはそこで働いている賢いJSの人々をたくさん持っています)

したがって、少なくともチェックアウトする価値はあると思います。

于 2010-12-19T18:18:59.127 に答える
4

この時点で、私はJasmineをお勧めします。私はいくつかのプロジェクトでそれをうまく使用しました。(他のツールとは異なり)何かを成し遂げることができなかったという苛立たしい状況に直面したことはあまりありません。好みに応じて、さまざまな構成でセットアップできます。ブラウザーでページを開くのと同じくらい簡単にすることも、動的に「提供」することもできます。

一般的な用途には数十のツールがあり、これまでのところ明確な勝者はいません。私はそれらのかなりの数を試しましたが、John Resig が指摘しているように、単純なテスト フレームワークの作成はそれほど複雑ではありません。ただし、便利にするためにいくつかのツールを追加することは重要です。ジャスミンは私が使用した中で最も完全なものですが、肥大化していません.

重要な考慮事項:

  • セットアップ: そのままでは簡単に機能しないツールを採用しないでください。
  • スタイル: 残りのテスト ツールとの関連で、自分にとって意味のあるツールを使用します。たとえば、BDD ツールを使用する場合は、BDD Javascript フレームワークを見つけます。これはおそらくフレームワークの最大の相違点です。好みの構文を持つものを選択することもできます。
  • クロスブラウザー: テストはブラウザー間で機能する必要があります
  • 自動化: 1 つまたは複数のブラウザーでテストの実行をスクリプト化できる必要があります。
  • 時間ベースのコードのテスト -- Javascript の動作が (アニメーションのように) クロックに関連付けられている場合、これを容易にするテスト フレームワークがあると便利です
  • モッキング: ジャスミンには、本当に役立つ素晴らしいモッキング サポートがあります。

単純な単体テストに Selenium を使用する必要はまったくありませ。構成が複雑になり、単純な単体テスト フレームワークよりもプログラミング モデルが難しくなります。

于 2011-03-17T05:31:57.837 に答える
2

私はこれに多くの苦労をしました。以前に使用したことがあると思われるので、特に Selenium が最善の策だと思います。JS のその他の作業は、主に単体テストです。

machineghost の回答を損なうものではありませんが、JS Test Driver は単体テストに最適です。

于 2010-12-19T18:23:24.480 に答える
2

<iframe>PUT (Page Under Test) を に挿入し、 jQuery を使用して単体テストからアクセスするのは非常に簡単であることがわかったため、QUnit を使用することになりました。

そうすれば、ブラウザー自体 (ロジックは 100% クライアントに常駐) とテキスト エディター以外の外部依存関係は必要ありません。

于 2011-01-04T20:17:04.853 に答える