はじめに
今回は、
Silverlightのテスティングフレームワーク
.NETでのテスティングフレームワークはオープンソースで開発されているNUnitやVisual Studio 2008以上のエディションで提供されている単体テスト機能がよく利用されています。Silverlightのテスティングフレームワークはこの連載の第4回でも少しふれましたが、
ダウンロードしたファイルをインストールしてできたフォルダの中のControls/
- Microsoft.
Silverlight. Testing. dll - Microsoft.
Silverlight. Testing. Framework. dll - Microsoft.
VisualStudio. QualityTools. UnitTesting. Silverlight. dll
コントロールに付属のテストコードもVisual Studioより簡単に起動できますので、

右側に実行中のテストとその結果、
環境の構築
では、
まず、
%programfiles%\Microsoft SDKs\Silverlight\v2.0\Libraries\Client
続いてJeff Wilcox氏のブログよりVisual Studioでこのテスティングフレームワークを使う場合のプロジェクトとC#のテンプレートをダウンロードします。氏のブログではテンプレートを用いない方法も紹介されていますが、
ダウンロードしたファイルをそれぞれ以下の場所に保存します。このときダウンロードしたファイルの解凍は必要ありません。
%userprofile%\Documents\Visual Studio 2008\Templates\ProjectTemplates
%userprofile%\Documents\Visual Studio 2008\Templates\ItemTemplates
以上で配置は完了です。これで次回Visual Stuioを開いたときにプロジェクトのテンプレートとしてSilverlightのテストプロジェクトを選択できるようになっています。
では、
プロジェクトを作成する
まず、

プロジェクト名 | SLUnitTest |
---|---|
ソリューション名 | SLUnitTest |
ソリューションのディレクトリを作成 | チェック |

コントロールをホストするための新しいWebをソリューションに追加する | チェック |
---|---|
プロジェクトの種類 | Webアプリケーションプロジェクト |
名前 | SLUnitTest_ |
テストプロジェクトを作成する
続いて先ほど作成したSilverlightアプリケーションをテストするためのテストプロジェクトを作成します。メニューの[ファイル] - [追加]より[新しいプロジェクト]を選択し、

以下の内容で設定を行い、
プロジェクトの種類 | Visual C# |
---|---|
テンプレート | Silverlight Test Project |
プロジェクト名 | SLUnit. |
作成されたプロジェクトの参照設定を確認してみてください。先ほど設定したテスティングフレームワークのアセンブリが読み込まれています。

続いてテストプロジェクトをWebアプリケーションでホストするように設定します。SLUnitTest_

以下の内容で設定を行い、
リンクするプロジェクト | SLUnitTest. |
---|---|
宛先フォルダ | / |
コントロールを参照するテストページを追加する | チェック |
Silverlightデバッグを有効にします。 | チェック |
WebプロジェクトにテストプロジェクトのSilverlightアプリケーションをホストするSLUnitTest.
以上で、

残念ながらREDが表示されてしまいました。これは標準で準備されているテストが失敗するテストのためです。
では、
[TestMethod]
public void TestMethod()
{
Assert.IsTrue(true);
}
変更が完了したら、

APIのテスト
今回の最後にAPIのテストを書いてみましょう。テストの内容は以下の通りです。
- GreetingクラスのGetMessageメソッドがHello worldと返すことを確認する。
いつものようにHello worldです。まずは、
次に、
public string GetMessage()
{
return "Hello world";
}
ここで、

今追加したGreetingTestを開いて、
[TestMethod] //(1)
public void GreetingのGetMessageはHelloworldをかえすべき()
{
//(2)
Assert.AreEqual("Hello world", new Greeting().GetMessage());
}
上記メソッドはGreetingクラスのGetMessageの仕様をテストしています。コードの
それでは、

次回予告
今回はテスティングフレームワークの環境の構築とAPIのテスト方法を紹介しました。APIのテストは他のテスティングフレームワークとほとんど変わらない形で書くことが可能です。
次回の後編では、