Ich muss einen Komponententest für eine neue Methode erstellen, die ich erstellt habe. Im Moment habe ich ein Problem, das mein tatsächliches Ergebnis mit meinem gewünschten Ergebnis vergleicht.Vergleichen mit DataTable-Zeilenwert
Verfahren in Frage:
public DataTable UniformDateFormat(DataTable durations, string targetColumn)
{
foreach (DataRow row in durations.Rows)
{
if (row[targetColumn].ToString().Length > 0)
{
DateTime conv = DateTime.Parse(row[targetColumn].ToString());
}
}
return durations;
}
Diese Methode einfach für eine bestimmte Spalte überprüft wird, und wandelt dann die Valuta innerhalb jeder Zelle der Spalte zu finden (es ist ein Excel-Blatt) und wandelt sie in etwas Uniformierter.
Mein Test-Code für es ist dies:
DataTable table = new DataTable();
table.Columns.Add("Reporting Date");
table.Rows.Add("12-06-2007");
test = new DurationData(excelConfig);
foreach (DataRow row in table.Rows)
{
result = row["Reporting Date"].ToString();
}
// the test I want to run
if (table.Columns.Contains("Reporting Date"))
{
result = test.UniformDateFormat(table, "Reporting Date").ToString();
Assert.AreSame("2007-06-12", result);
Console.Write("here");
}
Wenn ich führen Sie diesen Test-Code ich folgende Ausgabe:
Nachricht: Erwartet: gleiche wie "2007-06-12" Aber war: string.Empty
Was muss ich ändern, um meinen Test richtig auszuführen?
Die 'UniformDateFormat'-Methode ist seltsam, sie versucht im Grunde nichts anderes, als Strings in Datumswerte zu konvertieren, ohne diesen Datumsangaben eine Variable zuzuordnen. Abgesehen davon gibt 'UniformDateFormat' eine' DataTable' zurück und 'ToString' gibt nur die Eigenschaft' TableName' der Tabelle zurück (+ 'DisplayExpressio'). Natürlich ist das kein Date. –
Sind Sie sicher, dass die Methode 'UniformDateFormat' den gleichen Code wie Sie geschrieben hat und Teil eines größeren Frameworks ist? Die Methode macht nichts Sinnvolles und gibt dieselbe Datentabelle zurück, die an sie übergeben wird. –