redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

Visual Studio 2015は、Professionalでもユニットテスト機能(MSTest)が充実している

Visual Studio 2015になって、Professionalエディションでもユニットテストが便利になったと実感したので忘れずに書いておく。

便利だと思ったのは以下の2つ。

  • テスト対象クラスのメソッドから、テストクラス/メソッドを作成する
  • テスト対象クラスのメソッドから、テストクラス/メソッドに移動する

テスト対象クラスのメソッドから、テストクラス/メソッドを作成する

テスト対象クラスを開いて、右クリックから「単体テストの作成」を実行すると、
以下の画面が表示されて、必要な値を入力してOKをクリックするとテストプロジェクト/クラス/メソッドを作成してくれる。

f:id:redwarrior:20151205165758p:plain

2つほど注意点があって、1つは名前空間の問題。作成画面ではテスト対象クラスの名前空間を[Namespace]という変数で表現している。
しかし、Visual Studioのテンプレートでテストプロジェクトを作成していると、名前空間に「.Tests」が含まれてしまうので、フォルダを分けていた場合(例えばControllerフォルダに作成していた場合)に以下の差が発生する。

  • 手動で作成したテストの名前空間  → プロジェクト名.Tests.Controller
  • 画面から作成したテストの名前空間 → プロジェクト名.Controller.Tests

これを避けるために、テストプロジェクトのプロパティ画面を開いて名前空間から「.Tests」を削除して、作成画面の名前空間の指定からも「.Tests」を削除するようにしている。前回の設定が保存されるので次回から設定する必要はない。

もう1つの注意点は、作成対象がpublicメソッドのみというところ。public以外のメソッドはいちいち修飾子を変更するのが若干面倒。

テスト対象クラスのメソッドから、テストクラス/メソッドに移動する

こちらはいたってシンプル。CodeLensにテスト用の表示が追加されているので、それをクリックすれば移動できる。ショートカットキー「Alt+3」でも可能。

これでガンガンテストをしていきたい。

確認環境: Windows 8.1 Pro Visual Studio 2015 Professional