4 Stimmen

Ich brauche Ideen, um diese Tasked-Methode zu unit testen.

Dies ist die fragliche Methode:

public void StartBatchProcessing(IFileBatch fileBatch)
{
    var dataWarehouseFactsMerger = m_dataWarehouseFactsMergerFactory.Create(fileBatch);
    dataWarehouseFactsMerger.Merge();

    if(!m_isTaskStarted)
    {
        m_isTaskStarted = true;
        m_lastQueuedBatchProcessingTask = new TaskFactory().StartNew(() => ProcessBatch(dataWarehouseFactsMerger));
    }
    else
    {
        m_lastQueuedBatchProcessingTask = m_lastQueuedBatchProcessingTask.ContinueWith(previous => ProcessBatch(dataWarehouseFactsMerger));
    }
}

Wie Sie sehen, verwende ich TPL, um Aufgaben nacheinander in die Warteschlange zu stellen, und ich würde gerne testen, ob die Aufgaben in der Reihenfolge ausgeführt werden, in der sie eintreffen, sobald die vorherige abgeschlossen ist.

Die ProcessBatch-Methode ist geschützt, daher denke ich, dass sie in einer abgeleiteten Klasse überschrieben und verwendet werden kann, um einige Flags zu setzen oder etwas zu überprüfen.

Alle Ideen sind willkommen und werden geschätzt.

2voto

Gert Arnold Punkte 99327

Sie könnten eine Implementierung von DataWarehouseFactsMergerFactory erstellen, die Implementierungen von DataWarehouseFactsMerger erstellt, die in der Lage sind, zu protokollieren, welcher fileBatch eingegeben wurde und die Startzeit jeder Aufgabe, aber sonst nicht wirklich etwas tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X