web-dev-qa-db-ja.com

DataRowAttributeでの10進値の使用

MSTest.TestAdaptor 1.1.17を使用して、Visual Studio 2017で実行するテスト用のc#アセンブリがあります。 DataTestMethodを使用して、複数のデータセットでテストを実行したいと思います。私の問題は、DataRowsで10進値を使用したいのですが、使用できないことです。

_[DataTestMethod]
[DataRow(1m, 2m, 3m)]
[DataRow(1, 2, 3)]
[DataRow(1.0, 2.0, 3.0)]
public void CheckIt(decimal num1, decimal num2, decimal expected)
{
}
_

[DataRow(100m, 7m, 7m)]を使おうとすると、ソース_error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type._もコンパイルされません。

[DataRow(100, 7, 7)]を使用すると、テストはdecimalを予期しているが、値として_int32_を取得するため、テストは失敗します。

[DataRow(100.0, 7.0, 7.0)]を使用すると、テストはdecimalを予期しているが、値としてdoubleを取得するため、テストは失敗します。

DataRowで10進数を使用できないのはなぜですか?

25
Sam

10進数は プリミティブ型 ではないためです

解決策は、文字列を使用してから、テストでパラメーターを変換することです。

13
pln