Laden...

Komponente zum generieren von Testdaten gesucht

Erstellt von gelöschtem Konto vor 13 Jahren Letzter Beitrag vor 12 Jahren 1.380 Views
Gelöschter Account
vor 13 Jahren
Komponente zum generieren von Testdaten gesucht

Ich suche eine Komponente zum generieren von Testdaten am besten nicht auf einer Datenbank. Ich habe für .Net da nichts passendes gefunden.
Hat da jemand Erfahrung und kann mir was empfehlen?
Ein Traum wäre wenn ich sagen könnte generiere mir n Datumswerte
im Zeitraum 2004-2006 Montags-Freitags 8-16 Uhr gleichmässig verteilt.
Gibts das für .NET ?

Viele Grüsse
Sebastian

1.361 Beiträge seit 2007
vor 13 Jahren

Hi Sebastian,

vielleicht hilft ja schon LINQ selbst weiter 😃

static IEnumerable<DateTime> EnumerateDateTimes(int startYear, int endYear, IList<DayOfWeek> possibleDays, int startHour, int endHour)
        {
            return Enumerable.Range(startYear, endYear-startYear+1)
                .SelectMany(year => EnumerateDaysInYear(year, possibleDays, startHour, endHour));
        }

        static IEnumerable<DateTime> EnumerateDaysInYear(int year, IList<DayOfWeek> possibleDays, int startHour, int endHour)
        {
            return Enumerable.Range(1, 12)
                .SelectMany(month => EnumerateDaysInMonth(year, month, possibleDays, startHour, endHour));
        }

        static IEnumerable<DateTime> EnumerateDaysInMonth(int year, int month, IList<DayOfWeek> possibleDays, int startHour, int endHour)
        {
            return Enumerable.Range(1, DateTime.DaysInMonth(year, month))
                .Select(day =>new DateTime(year, month, day))
                .Where(date => possibleDays.Contains(date.DayOfWeek))
                .SelectMany(date => EnumerateHoursInDay(date, startHour, endHour));
        }

        static IEnumerable<DateTime> EnumerateHoursInDay(DateTime date, int startHour, int endHour)
        {
            return Enumerable.Range(startHour, endHour - startHour + 1)
                .Select(hour => date + new TimeSpan(hour, 0, 0));
        }

        static void Main(string[] args)
        {
            var days = EnumerateDateTimes(
                2004,
                2006,
                new[] { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday },
                8,
                16).ToList();


            foreach (DateTime day in days)
            {
                Console.WriteLine(day);
            }

        }

beste Grüße
zommi

Gelöschter Account
vor 13 Jahren

hey zoomi

auf Linq wäre ich garnicht gekommen :p warum eigentlich nicht 🤔

danke, ich schulde dir ein bier.

456 Beiträge seit 2007
vor 12 Jahren

Hallo,

ich krame den Thread mal wieder aus ... ist jetzt bald schon ein Jahr vergangen - Frage bleibt die gleiche.
Bevor ich anfange, das selbst zu coden wollte ich mich mal vergewissern ob es nicht (mittlerweile) ein geeignetes Tool gibt.

Ich möchte ein Tool, welches mir ein Objekt(graphen) mit Testdaten befüllt, welche ich konfigurieren kann.

Beispielsweise gibt es in einem Objekt ein Property Ort, dann möchte ich alle relevanten Orte, z.B. "Hamburg", "München", "Stuttgart" konfigurieren können, die zur Auswahl stehen oder bei Decimal-Properties Ranges angeben können usw.

Gruß und Danke für etwaige Antworten schon einmal im Voraus.

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo mosspower,

wenns um Test-Daten für Unit-Tests geht ist das NUnit sehr komfortabel mit zB TestCase-Attribute, TestCaseSource-Attribut, etc.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

49.485 Beiträge seit 2005
vor 12 Jahren