WatiN(リンク) は.NETによるWeb自動テストのためのオープンソースライブラリだ。WatiNは有名なRubyベースのWatir(リンク)プロジェクトにインスパイアされたもので、ブラウザを通して行うWebアプリケーションの自動テストを促進させる。WatiNはC#で書かれているが、テストは.NET言語ならどれでも書くことができる。サポートするプラットフォームはWindowsだけである。
バージョン1.0は他の多くの.NET製の製品と比べて機能は豊富だったこともあり、ユーザーインターフェースと受け入れテストのためのツールとしてそれなりの評判を得たが、カスタマイズ製に乏しく、 Internet Explorerしか自動化をサポートしていなかった。まだ開発中とはいえ、WatiNのバージョン2.0では、IEとFireFox 2.0、3.0をサポートしている。新しいCTP(Community Technology Preview)であるWatiN 2.0 CTP 3は2月11日にリリースされた(リンク)。
CTP 3はFireFoxの一層のサポートに加え、次の変更が含まれている。
- Frameのdocumentの中の要素にアクセスするためのMozilla.Frameサポートの実装
- IFrameのdocumentの中の要素にアクセスするためのMozilla.Frameサポートの実装
- Mozilla.Document (= FireFoxとFrame) のEvalの実装とIFrameインターフェースの追加
- Form.Submitがある状況においてポストバックとページロードを待たないことによる不具合の修正
WatiN はDOM操作とアサート条件の検証を使うことでブラウザに依存するが、WatiN 2.0はクロスブラウザのテストを書くための抽象レイヤーを持っている。次のサンプルコードは、GoogleでWatiNを検索し、結果に"WatiN" が含まれていることを検証する単純な例である。IEのテストおよびFireFoxのテストを、どちらのブラウザでも機能する1つのテストにリファクタリングできるのがわかってもらえるだろう。
WatiN のテストを手で書くのが退屈なら、ブラウザでのWatiNのテストを記録する別のオープンソースプロジェクトがある。WatiN Test Recorder(リンク)は利用可能な新しいリリースこそないものの、バージョン2.0が目下開発中であり、大きな機能強化が期待できる。