SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

C#で始めるテスト駆動開発入門

ユニバーサルWindowsアプリのユニットテスト(前編)

C#で始めるテスト駆動開発入門(8)

  • このエントリーをはてなブックマークに追加

ダウンロード CsTdd08.zip (125.1 KB)

 WindowsストアとWindows Phoneストアの両方で配布できるのが「ユニバーサルWindowsアプリ」です。そのユニットテストの方法には、従来のデスクトップアプリとはちょっと違う部分があります。Windowsランタイム用のMSTestを使ってユニットテストを行う方法を前後編に分けて紹介します。この前編では、ユニバーサルプロジェクトでユニットテストする方法を説明します。

  • このエントリーをはてなブックマークに追加

はじめに

 ユニバーサルWindowsアプリを作るために新しく用意されたVisual Studioの「ユニバーサルプロジェクト」は、今までになかったソリューション構成です。そこで今回は、プロジェクトを作るところからユニットテストの方法を解説していきます。また、ユニットテストフレームワークにはVisual Studioに標準装備されているMSTestを使いますが、利用するライブラリーが従来のものとは異なっています。その新機能であるパラメタライズドテストなども紹介します。

前編:

  1. ユニバーサルWindowsアプリとユニバーサルプロジェクトについて
  2. ユニバーサルプロジェクトにユニットテストのプロジェクトを追加する方法
  3. 同じユニットテストをWindowsとPhoneでいっぺんに実行する方法

後編:

  1. ユニットテストを共有プロジェクトに置く方法(有償版限定)
  2. 非同期メソッドのユニットテスト
  3. Windowsランタイム用のMSTestライブラリーの新機能とその使い方

 なお、UI操作の自動実行(自動化されたUIテスト)は扱いません。

 この前編では、ユニットテストのプロジェクトの作り方と、ユニットテストの実行方法を説明します。

対象読者

  • TDDに興味をお持ちのWindowsストアアプリ開発者/Windows Phoneアプリ開発者。

必要な環境

 サンプルコードを試すには、Visual Studio 2013のUpdate 2以降が必要です(無償のExpressで可)。本稿執筆時点では、下記から入手できます。この記事では、Visual Studio Express 2013 with Update 3 for Windowsを使用しています。

開発環境の入手先

 OSにはWindows 8.1が必要です(2014年4月のアップデート、通称「Update 1」が必須)。さらに、Windows Phoneのユニットテストを実行するためには、64bit版Windows 8.1のPro版以上とSLAT対応のPCが必要になります。
 

 なお、Expressエディションは複数存在していてまぎらわしいのですが、「for Windows」を使います。「for Windows Desktop」は、WPFとWindows Formsの開発用です。

1.ユニバーサルWindowsアプリとユニバーサルプロジェクト

 まず初めに、いくつかの用語の定義をMSDN「ストア アプリとは」のページ(下の画像)から引用しておきます。

ストアアプリ: WindowsデバイスとWindows Phoneで動作する、デスクトップアプリ以外のアプリ

Windowsストアアプリ: Windowsストアアプリは、Windowsデバイス(PC、タブレット、ノートPCなど)上で動作し、Windowsストアで販売できます。
Windows Phoneストアアプリ: Windows Phoneストアアプリは、Windows Phone上で動作し、Windows Phoneストアで販売できます。
ユニバーサルWindowsアプリ: ユニバーサルWindowsアプリとは、WindowsストアとWindows Phoneストアの両方で入手できるアプリです。
MSDNにおけるユニバーサルWindowsアプリの定義
MSDNにおけるユニバーサルWindowsアプリの定義

 上の定義によれば、WindowsストアとWindows Phoneストアの両方で入手できるようになってさえいればユニバーサルWindowsアプリです。従って、ユニバーサルWindowsアプリには、次に挙げるプラットフォーム向けのアプリが含まれます。

Windowsストアアプリ:

  • Windows 8.0
  • Windows 8.1

Windows Phoneストアアプリ:

  • Windows Phone 7.x
  • Windows Phone 8.x向けSilverlightアプリ
  • Windows Phone 8.1向けWindowsランタイムアプリ

 上記の中で任意のWindowsストアアプリと任意のWindows Phoneストアアプリを組み合わせて、ユニバーサルWindowsアプリとしてストアに登録できます。

 そして、Windows 8.1用のWindowsストアアプリと、Windows Phone 8.1向けWindowsランタイムアプリのWindows Phoneストアアプリの組み合わせだけに絞って、両方のコードをできるだけ共通化しつつ楽に開発できるように用意されたのが、Visual Studio 2013 Update 2から提供されたC#用の「ユニバーサルプロジェクト」です。VB用は次期Visual Studio(通称VS14)からの提供になるといわれています。

ユニバーサルWindowsアプリとユニバーサルプロジェクトの関係
ユニバーサルWindowsアプリとユニバーサルプロジェクトの関係

 今回のタイトルは「ユニバーサルWindowsアプリのユニットテスト」としていますが、正確にはその中の「ユニバーサルプロジェクトのユニットテスト」だけを扱います。ユニバーサルプロジェクトでユニットテストを作成/実行する方法を解説していきます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
2.ユニバーサルプロジェクトにユニットテストのプロジェクトを追加する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
C#で始めるテスト駆動開発入門連載記事一覧

もっと読む

この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8035 2014/10/07 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング