なか日記

一度きりの人生、楽しく生きよう。

MSTest v2でパラメータ化テストが使えるようになってた

MSTestでパラメータ化テスト使いたかったら、Chaining Assertion使うといいよ!ってブログに書いたのが、なんともう3年半前になるんですね。時間が過ぎるのは早いもんです。

そして、気が付くとMSTest v2で正式にパラメータ化テストが使えるようになっていました。

使い方

Visual Studio 2017ではMSTest v2が標準で使用されるようです。ただし、.Net Framework 4.5以上もしくは、.Net Coreで単体テストプロジェクトを作成する必要があります。

Visual Studio 2015以前の場合はNuGetでインストールすれば使えるようになると思います(環境がないので試せてない)

コード

こんな感じ。DataTestMethodAttributeを使用する必要があります。

    [TestClass]
    public class UnitTest1
    {
        [DataTestMethod]
        [DataRow(1, 1, 2)]
        [DataRow(1, 2, 3)]
        [DataRow(2, 3, 4)]
        public void TestMethod1(int a, int b, int c)
        {
            Assert.AreEqual(c, a + b);
        }
    }

実行結果

テストを実行すると、以下のような結果が表示されます。

f:id:nakaji999:20170405002607p:plain

まとめ

個人的に手っ取り早いので、MSTestを使うことが多いのですが、最近はxUnit.netを使ってるプロジェクトもよく目にします。

xUnit.netも使ってみたいなぁ。まぁ、自分の場合、どっちを使っても同じかなぁという気がしないでもないですが。

おしまい。