連載
C++開発者のための単体テスト入門

第3回 C++アプリケーションの効率的なテスト手法(NUnit編)

επιστημη(えぴすてーめー)
2007/09/14
Page1 Page2 Page3 Page4

 単体テスト・フレームワーク(Unit Test Framework)は、さまざまな言語に対応したものが無償でリリースされています。Cに対応した「CUnit」、Javaの「JUnit」、前回紹介したC++対応の「CppUnit」などがあります。これらは“xUnit”と総称されます。

 もちろんC#やVisual Basic(.NET/2005)に代表されるCLI(Common Language Infrastructure)に準拠した.NET言語で書かれたプログラムをテストするための単体テスト・フレームワークもあり、その1つが「NUnit」です。NUnitはC#で実装されたアセンブリ(.DLLファイル群)と単体テスト実行環境(nunit.exe/nunit-console.exeファイル)で構成されており、.NET言語に対応したxUnitとしては最も広く使われています。

 Visual Studio 2005(以下、VS 2005)に組み入れられたVisual C++ 8.0は独自の言語拡張「C++/CLI」によって.NETマネージ・コード(managed code)を生成できますから、C++/CLIで書かれたテストをNUnitで実行することができます。さらにC++/CLIは従来のネイティブなC/C++コード(native code)を呼び出せるのですから、C/C++によるネイティブ・コードのテストをC++/CLIで作成することで、(マネージ・コードだけでなく、ネイティブ・コードも)NUnitでテストできるわけです。

 今回は、このNUnitについて簡単に紹介し、NUnitを用いたネイティブ・コードのテスト方法について解説します。

NUnitのインストールと試運転

 NUnitおよびNUnitに関する情報は、下記のサイトより入手できます。

 このサイトの上部にある[DOWNLOAD]から.NET Framework 2.0向けの最新版NUnitをダウンロードしてください(2007年9月時点での最新はversion 2.4.3です)。本稿では「NUnit-2.4.3-net-2.0.msi」を利用します。これをダウンロード、実行すればインストールが始まります。インストール先は適当なディレクトリを指定してください。インストールが完了すると、デスクトップにNUnitアイコンが追加されます。

デスクトップに追加されたNUnitアイコン

 それではお試しにC#で簡単なアセンブリを作成し、NUnitでテストしてみましょう。

NUnitの試運転:テスト対象クラスの作成

 VS 2005で「NUnitDemo」という名前の「空のソリューション」を作成し、その中にC#の「クラス ライブラリ」のプロジェクトとして「CSCounter」を用意します。

 CSCounterプロジェクト内に自動生成された「Class1.cs」ファイルの名前を「Counter.cs」に書き換え、そのファイルに前回C++で実装したテスト対象である「Counterクラス」(=カウントを数える機能を持つクラス)のC#版を実装します。各メソッドの中身はコンパイル・エラーとならないハリボテとしておきます。

namespace NUnitDemo
{
  public class Counter
  {
    private int count_;
    public Counter() {}
    public int get() { return 0; }
    public void incr() { }
    public void clear() { }
  }
}
C#で作成したCounterクラス(Counter.cs)

 このアセンブリをテストするプロジェクトを作りましょう。

NUnitの試運転:テスト用プロジェクトの作成

 ソリューションにC#クラス・ライブラリのプロジェクト「CSCounterTest」を追加します。

 そして、CSCounterTestプロジェクトに対して「nunit.framework.dll」(=NUnitの基本アセンブリ)への参照を追加します。NUnitが正しくインストールされていれば、次の画面のように[参照の追加]ダイアログの[.NET]タブのアセンブリ一覧に「nunit.framework」が見つかります。

「nunit.framework.dll」アセンブリへの参照の追加
[ソリューション エクスプローラ]上で[CSCounterTest]プロジェクトの項目を右クリックして、表示されるコンテキスト・メニューから[参照の追加]を選択する。すると、このような[参照の追加]ダイアログが表示されるので[.NET]タブを開き、アセンブリ一覧の中から「nunit.framework」([バージョン]は「2.4.3.0」)を選択して[OK]ボタンをクリックする。

 さらにテスト対象であるCSCounterプロジェクトへの参照も追加しておきます。

「CSCounter」プロジェクトへの参照の追加
[参照の追加]ダイアログで[プロジェクト]タブを開き、プロジェクト一覧の中から「CSCounter」を選択して[OK]ボタンをクリックする。

 それでは、さっそくテストを書きましょう。


 INDEX
  [連載]C++開発者のための単体テスト入門
  第3回 C++アプリケーションの効率的なテスト手法(NUnit編)
  1.NUnitのインストール
    2.NUnitの試運転
    3.C++ネイティブ・コードをテストする
    4.NUnitテストの制限+おまけ:ReSharper UnitRun

インデックス・ページヘ  「C++開発者のための単体テスト入門」

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH