Verwenden von Dezimalwerten in DataRowAttribute

9

Ich habe eine c # -Assembly für Tests, die in Visual Studio 2017 mit MSTest.TestAdaptor 1.1.17 ausgeführt werden sollen. Ich möchte ein DataTestMethod verwenden, um einen Test mit mehreren Datensätzen auszuführen. Mein Problem ist, ich möchte Dezimalwerte in meinen DataRows verwenden, aber nicht:

%Vor%

Wenn ich versuche, [DataRow(100m, 7m, 7m)] zu verwenden, kompiliert es nicht einmal die Quelle: error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type. .

Wenn ich [DataRow(100, 7, 7)] verwende, wird der Test fehlschlagen, da mein Test decimal erwartet, aber int32 als Wert bekommt.

Wenn ich [DataRow(100.0, 7.0, 7.0)] verwende, wird der Test fehlschlagen, da mein Test decimal erwartet, aber double als Wert bekommt.

Warum kann ich in einer DataRow keine Dezimalzahlen verwenden?

    
Sam 04.05.2017, 15:23
quelle

1 Antwort

3

Das liegt daran, dass dezimal kein primitiver Typ

ist

Die Lösung besteht darin, Zeichenfolgen zu verwenden und dann Ihre Parameter in Ihrem Test zu konvertieren.

    
pln 18.05.2017, 07:06
quelle