Mam zestaw C# dla testów uruchamianych w Visual Studio 2017 przy użyciu MSTest.TestAdaptor 1.1.17. Chcę użyć DataTestMethod do uruchomienia testu z kilkoma zestawami danych. Mój problem jest, chcę użyć wartości dziesiętnych w moich wierszy DataRows ale nie może:Używanie wartości dziesiętnych w DataRowAttribute
[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)
{
}
Kiedy próbuję użyć [DataRow(100m, 7m, 7m)]
nie będzie nawet skompilować źródło: error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type.
.
Gdy użyję [DataRow(100, 7, 7)]
, test się nie powiedzie, ponieważ mój test oczekuje decimal
, ale otrzymuje wartość int32
jako wartość.
Podczas korzystania z [DataRow(100.0, 7.0, 7.0)]
test zakończy się niepowodzeniem, ponieważ mój test oczekuje decimal
, ale otrzymuje wartość double
jako wartość.
Dlaczego nie mogę używać liczb dziesiętnych w DataRow?
który język jest wyjątkiem? Niestety nie rozumiem tego języka – loneshark99
To niemiecki. Krótki Google "błąd CS0182" znalazł angielski komunikat, aktualizuję pytanie! – Sam