VS2005 ユニットテスト機能のまとめ

Visual Studio 2005のユニットテスト機能をある程度触ってみた感想をまとめてみました。
最初は、VS2005ユニットテスト機能いい!!と直感的に思ったんですが、
ある程度触ってしまってだいぶ冷めてきました....理想と現実の壁は高い...orz

【Good!!】
まずは、ユニットテスト機能でこの機能いいなーと思った点です。

  • テストメソッドの分類方法が多い
    以前の記事にも書きましたが

    http://www.takakuro.net/blogs/nagile/archive/2005/09/30/139.aspx

    NUnitはCategory属性だけなので、カテゴリ名にどういうものを設定するかうまく考える必要があります。
    最初からある程度分類方法が提供されているのは、良いことですね。
  • Timeout属性
    テストメソッドが一定時間以内に終了しないとテスト失敗となる属性です。
    VS2005 RCで試してみたんですが、うまく動きませんでした。実装まだかな?
    この属性は、今のNUnitに無いです。JUnit4で入るらしいですね
  • テストメソッドの属性を動的に変更可
    これもメリットは大きいと思います。コードの中に記述する属性は静的なものなので、
    テストマネージャのUIから属性の内容を動的に変更できると、いちいちコードの修正しなくてOKですから。
  • Privateへのアクセサを作れる
    テスト対象のクラスのPrivateフィールドやメソッドに対してもテストがかけます。
    これは良いか悪いか人によって判断わかれるところでしょうね。

【その他】
利用方法はわかるんだけど、よいのかわるいのか判断つかないものです。

  • データ駆動ユニットテスト
    こちらも以前に記事に書きました。
    いまだにどう使うんだろう、コレ?って感じです。
    うまい利用方法とか具体的なものがでてこないとつらいですね。

    http://www.takakuro.net/blogs/nagile/archive/2005/09/29/136.aspx

    もし使うのであれば、DBよりもCSVファイルにしたほうが良いと思います、変更しやすいし。
  • Webサービスのテストするためのヘルパークラス
    WebサービスをホストするASP.NET Webサーバを自動的に起動するのは必要です。
    それはわかるけど、機能がそれだけ?ってところががっかりしました。
    Mock的な使い方ができれば面白いのになー。

まだ見逃している機能とかあるかもしれないですね。
テストの視点でVS2005説明している資料とか無いもんで、Helpドキュメントが頼りです。

それと色々試しているうちに、VS2005とNUnitを機能比較することには
あまり意味がないのでは?と思い始めました。
パッケージ製品とオープンソースのツールは、スタートラインが違うので
機能云々を比較する前にどっちを使うか決まる気がしますので。

VS2005ユニットテストの機能はこれで一区切りです。