web-dev-qa-db-ja.com

DataTestMethodとTestMethod

MSTest 2 DataRow属性を使用して、1つのテストで複数のケースをチェックし始めました。

[TestMethod]
[DataRow(1, 1, 2)]
[DataRow(1, 2, 3)]
public void AdditionWorks(int op1, int op2, int expectedResult)
{
    Assert.AreEqual(expectedResult, new Sut().Add(op1, op2));
}

NCrunchとCIの両方でうまく機能します。 DataTestMethodの代わりにそのようなテストをマークすることになっている特別な属性TestMethodがあることに今だけ気づきました。

違いはありますか?特に1つのバリアントを使用する理由は?

14

ShreyasRmsftはGitHubで次のようにコメントしています。

こんにちは@cactuaroidDataTestMethodは必要ありません。先に進み、DataRowsでTestMethodを使用して、テストをデータ駆動します。その他の疑問については、公式ドキュメントに従ってください https://github.com/Microsoft/testfx-docs

https://github.com/Microsoft/testfx/issues/614

https://github.com/Microsoft/testfx-docs/issues/64

したがって、Microsoftによれば、DataTestMethodよりもTestMethodを使用することをお勧めします。

2
Nathan

以前のバージョンのMSTestと同じ名前空間で同じ属性が定義されているため、両方の属性が機能します。これは、下位互換性のために行われました。

参照 :

「MSTestV2」でMSTestフレームワークを前進させる

Github:ユニットテストサンプル

12
Nkosi