![]() |
連載
|
|
|
単体テスト・フレームワーク(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#版を実装します。各メソッドの中身はコンパイル・エラーとならないハリボテとしておきます。
|
|
| C#で作成したCounterクラス(Counter.cs) |
このアセンブリをテストするプロジェクトを作りましょう。
●NUnitの試運転:テスト用プロジェクトの作成
ソリューションにC#クラス・ライブラリのプロジェクト「CSCounterTest」を追加します。
そして、CSCounterTestプロジェクトに対して「nunit.framework.dll」(=NUnitの基本アセンブリ)への参照を追加します。NUnitが正しくインストールされていれば、次の画面のように[参照の追加]ダイアログの[.NET]タブのアセンブリ一覧に「nunit.framework」が見つかります。
さらにテスト対象であるCSCounterプロジェクトへの参照も追加しておきます。
![]() |
| 「CSCounter」プロジェクトへの参照の追加 |
| [参照の追加]ダイアログで[プロジェクト]タブを開き、プロジェクト一覧の中から「CSCounter」を選択して[OK]ボタンをクリックする。 |
それでは、さっそくテストを書きましょう。
| INDEX | ||
| [連載]C++開発者のための単体テスト入門 | ||
| 第3回 C++アプリケーションの効率的なテスト手法(NUnit編) | ||
| 1.NUnitのインストール | ||
| 2.NUnitの試運転 | ||
| 3.C++ネイティブ・コードをテストする | ||
| 4.NUnitテストの制限+おまけ:ReSharper UnitRun | ||
| 「C++開発者のための単体テスト入門」 |
TechTargetジャパン
- 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 のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





