始めよう!Silverlight

第7回 Silverlightで単体テスト(前編)

この記事を読むのに必要な時間:およそ 3 分

APIのテスト

今回の最後にAPIのテストを書いてみましょう。テストの内容は以下の通りです。

  • GreetingクラスのGetMessageメソッドがHello worldと返すことを確認する。

いつものようにHello worldです。まずは,テストプロジェクトにSilverlightプロジェクトの参照を追加してください。テストプロジェクトを右クリックして,[参照の追加]を選択し,[プロジェクト]タブより[SLUnitTest]を選択します。

次に,SilverlightプロジェクトにGreetingクラスを追加します。クラスの追加ができたら以下のメソッドを追加してください。

public string GetMessage()
{
return "Hello world";
}

ここで,テストプロジェクトにSilverlightプロジェクトの参照を追加してください。テストプロジェクトを右クリッ続いて,テストプロジェクトにGreetingクラスをテストするGreetinTestクラスを追加します。コンテキストメニューなどから[新しい項目の追加]ダイアログを起動してください。[カテゴリ]が[Visual C#]の中のテンプレートのマイテンプレートに最初に追加した[Silverlight Test Class]があります。それを選択してファイル名にGreetingTestと入力して[追加]をクリックします。

画像

今追加したGreetingTestを開いて,デフォルトで定義してあるTestMethodを削除して,代わりに以下のメソッドを追加してください。

[TestMethod]  //(1)
public void GreetingのGetMessageはHelloworldをかえすべき()
{
//(2)
Assert.AreEqual("Hello world", new Greeting().GetMessage());
}

上記メソッドはGreetingクラスのGetMessageの仕様をテストしています。コードの(1)の部分はTestMethodAttributeの宣言で,この属性が付加されているメソッドがテスト実行時に呼ばれます。コードの(2)の部分は検証を行っている部分です。Assert.AreEqualは第1引数に期待する値,第2引数に実際の値を設定します。ここではGreetingクラスのGetMessageメソッドがHello worldであることを検証しています。

それでは,実行してみます。正常にGREENが表示されたら成功です。

画像

次回予告

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

次回の後編では,SilverlightらしいテストということでUIのテストと非同期のテストをご紹介します。今回の熱が冷めないうちに,いつもの連載間隔より短い期間で掲載したいと考えています。お楽しみに。

著者プロフィール

丸山和秀(まるやまかずひで)

株式会社アークウェイ システムクリエイター。趣味はドラム。社会人になりたてのころは職業はドラマーだと豪語していたが,いつのまにかシステム開発の楽しさにのめりこみ,仕事内容が職業になっていた。パッケージベンダにて金融向けパッケージソフトの開発を行うSEを経て現職へ。現在は研究開発としてRIAに取り組み中。