高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

ユニットの単体テスト

 これはSharpDevelopのみの機能だったと思いますが、
SharpDevelopでは、ユニットの…じゃなかった、アセンブリの単体テスト用のクラスを作ることが出来ます。NUnitと言う仕組みを使ってるらしいので、それさえ使えれば、別にVisualStudioでも出来るんでしょうが。とにかくちゃんと対応してるのは.NET開発環境ではSharpDevelopだけみたいですね。
DLLを作ってるときなんか、コンポーネントを作ってるとなるとちょっと難しいでしょうが、ちょっとした関数集のデバッグに使えます。
 プロジェクトパネルから、今のプロジェクトに"新規ファイルを追加"、ダイアログから、"単体テスト"を選択し、OKを押すと、単体テスト用のコードファイルができあがります。
あとは、public void TestMethod()のなかに、テストコードを書けば、単体テストパネルより実行できます(ただしビルドは必要)。単体テストというのだから、もしかしたらある程度テストケースを練ってやれば、後は勝手にやってくれるのかと思いましたが、さすがにそういうわけじゃなさそうですね(^_^;)
そのままだと、コンパイル時に警告がうるさい(単体テストのページに、"Xmlコメントがありません"などと言われる)ので、TestFixture属性のついてるテストクラスの可視性を、internalに変えてしまうといいでしょう。どうせ実行時には使わないんだし。
 …でも、これって実際リリースするときにはどうなるんでしょう?やっぱり実際のアセンブリの中に組み込まれるわけで、配布時にうっかりそのまま配布しちゃうと、使うたびに警告が出されたりするんでしょうか?