Ich versuche immer noch, dem Pfad zu TDD zu folgen.Wie Sie TDD verwenden, wenn Ihre Methode für viele Aufgaben ausgelegt ist
Angenommen, ich habe einen SunSystemBroker ausgelöst, wenn eine Datei in einen freigegebenen Ordner hochgeladen wird. Dieser Broker wurde entwickelt, um diese Datei zu öffnen, Datensätze daraus zu extrahieren, verbundene Zahlungen in anderen Systemen zu finden und schließlich einen Workflow aufzurufen!
Wenn ich TDD folgen möchte, um die IBroker.Process() - Methode zu entwickeln, wie soll ich tun?
Hinweis: Broker sind unabhängige Assemblies, die von IBroker erben und von einer Konsolenanwendung geladen werden (wie Plugins).
Diese Konsole ist verantwortlich für die Auslösung jedes Brokers!
public interface IFileTriggeredBroker : IBroker
{
FileSystemTrigger Trigger { get; }
void Process(string file);
}
public class SunSystemPaymentBroker : IFileTriggeredBroker
{
private readonly IDbDatasourceFactory _hrdbFactory;
private readonly IExcelDatasourceFactory _xlFactory;
private readonly IK2DatasourceFactory _k2Factory;
private ILog _log;
public void Process(string file)
{
(...)
// _xlFactory.Create(file) > Extract
// _hrdbFactory.Create() > Find
// Compare Records
// _k2Factory.Create > Start
}
}
Jede Methode werden einzeln getestet.
Danke Seb
Ich bin mir nicht sicher, ob das tatsächlich deine Frage ist oder nicht ...Aber ich hatte immer eine ähnliche Frage, wenn es um die Methoden geht, die "alles zusammenfügen". Wenn du die Methoden 'Foo',' Bar' und 'Baz' hast, die alle komplett eigenständig sind und etwas alleine machen, aber du musst sie für ein gewünschtes Verhalten zusammenketten, denke ich, dass" Verkettung "eine einzige ist Verantwortung, aber ich bin nie wirklich sicher, was ich diese Art von Klassen nennen soll. Und um sie zu testen, ist es einfach sicherzustellen, dass dieser "Chainer" alle benötigten Methoden von 'Foo',' Bar' und 'Baz' aufruft? – Kritner