Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/10/07 14:00

ダウンロード 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アプリのユニットテスト」としていますが、正確にはその中の「ユニバーサルプロジェクトのユニットテスト」だけを扱います。ユニバーサルプロジェクトでユニットテストを作成/実行する方法を解説していきます。


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

著者プロフィール

  • biac(ばいあっく)

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

バックナンバー

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

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5