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?
Das liegt daran, dass dezimal kein primitiver Typ
istDie Lösung besteht darin, Zeichenfolgen zu verwenden und dann Ihre Parameter in Ihrem Test zu konvertieren.
Tags und Links c# unit-testing mstest visual-studio-2017