C++のネイティブ・コードも.NETコードも同じように単体テストしたい!? それならNUnitが便利だ。そのテスト方法を紹介。
単体テスト・フレームワーク(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に関する情報は、下記のサイトより入手できます。
このサイトの上部にある[DOWNLOAD]から.NET Framework 2.0向けの最新版NUnitをダウンロードしてください(2007年9月時点での最新はversion 2.4.3です)。本稿では「NUnit-2.4.3-net-2.0.msi」を利用します。これをダウンロード、実行すればインストールが始まります。インストール先は適当なディレクトリを指定してください。インストールが完了すると、デスクトップに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() { }
}
}
このアセンブリをテストするプロジェクトを作りましょう。
●NUnitの試運転:テスト用プロジェクトの作成
ソリューションにC#クラス・ライブラリのプロジェクト「CSCounterTest」を追加します。
そして、CSCounterTestプロジェクトに対して「nunit.framework.dll」(=NUnitの基本アセンブリ)への参照を追加します。NUnitが正しくインストールされていれば、次の画面のように[参照の追加]ダイアログの[.NET]タブのアセンブリ一覧に「nunit.framework」が見つかります。
さらにテスト対象であるCSCounterプロジェクトへの参照も追加しておきます。
それでは、さっそくテストを書きましょう。
Copyright© Digital Advantage Corp. All Rights Reserved.