ScottGu's blog translated by Chica @ Wankuma

Silverlightで単体テスト

  

Silverlight2のベータ1リリースにおける重要な機能にAPIレベルおよびUIレベルの両方で単体テストを実行できる単体テストユニットがあります。このテストユニットはクロスブラウザおよびクロスプラットフォームで、簡単に自動化された単体テストを起動・実証することができます。

このSilverlight単体テストユニットに加え、 それによりビルドされた2,000もの単体テストソースも出荷しました。これは Silverlight コントロールソース を自動的にカバーしており、ライセンス許可されています。(コントロールソースを、修正し、動作を実証する単体テストを起動させ、そのコントロールをお好きな形で再出荷することができます。)

Silverlightの単体テストの方法

Jeff Wilcox (Silverlight単体テストフレームワークとユニットの開発者)は彼のブログで ソリューションへのSilverlight単体テストプロジェクトの追加方法を記載しています。 彼がテストで使用しているチャットアプリケーションは、先月投稿した Expression Blendのチュートリアル からダウンロードすることができます。また、Jessが作成した、今回出荷したこの単体テストフレームワークとテストケースのチュートリアルの ビデオもご覧頂けます。

Jeffはブログで、作成中のアプリケーションの単体テストをカプセル化する "Silverlight テストプロジェクト" のVisual Studioソリューションに追加する方法をご覧頂けます。 :

その後、単体テストクラスをテストプロジェクトに追加し、APIのテストまたSilverlightコントロールでのUIアクション(ボタンのクリックなど)のシミュレーションを行うことができます。

そして、そのテストプロジェクトを起動し、テストを実行して実証し、その情報報告を行います。

Jeffのテストフレームワークは自動的にブラウザベースのテストユニットとレポートシステムを提供しています。(つまり、Silverlightが起動できるブラウザとOSの組み合わせならそれも起動することができます。) :

Jeffのテストフレームワークは各テストの後簡単にコントロールがリセットできるようになっています。( また各テストケースに対して新しいブラウザインスタンスを立ち上げなくてもすみますので、非常に早くなります。 )

何秒かで自動化されたテストを何百も何千も素早く済ませることができます。 :

緑の結果はテストが成功したことを意味します。赤の結果は失敗を意味し、その失敗したというアサーションおよび発生した実行時例外をログに残します。

まとめ

自動化された単体テストまたはAJAXアプリケーションでのTDD実行に対して今まで苦労して対策を考えたことがある方には、Silverlightのテストオプションがより良いものに思われると思います。Visual Studioを使用すれば、ソリューションでプロジェクトを分けることもでき、起動するためにそれらをSilverlightアプリケーションにテストを埋め込む必要が ありません

上記の単体テストユニットおよびフレームワークのサポートに加え、Silverlight2の最終リリースでUIの自動化APIもサポートする予定です。これらはアクセシビリティのシナリオを有効にします。(スクリーンリーダがSilverlightを使用することができ、Silverlightアプリケーションを508セクションに準じさせることができます。)これらのUI自動化APIは、UIテストも有効にすることができ、本当のマウスやキーボードの動作をシミュレーションし、自動化された両エンドにおけるユーザ体験のテストを有効にするエンドトゥエンドブラウザUIの自動化をビルドすることができます。この組み合わせでより強固で保守可能なRIAソリューションをビルドすることができます。

Hope this helps,

Scott

P.S. Silverlight2のチュートリアルやリンクは、 "Silverlight のヒント、仕掛け、チュートリアルとリンク"ページをご確認ください。

ScottGu's blog translated by Chica @ Wankuma 

※本翻訳に関しまして、Scottさんにはご了承頂いております。