Explizit eine
Query ist schon ein bisschen hart, aber wenn es ein TDataSet bekommt ist da nichts verwerfliches dran. Ich hatte mal versucht ganz von der Verwendung eines TDataSet in der Anwendungslogik wegzukommen, aber da wurde man wirklich nicht mehr froh wenn man sich das ganze wie Lazy-Loading und alles selbst implementieren und neu erfinden muss.
Hauptsache deine Klassen arbeiten gegen Interfaces und keine konkreten Klassen. Dann kannst du in den
Unit-Tests ja reinstecken was du willst. Ob es jetzt im SetUp() mittels Memory-Tables oder sonstwas aufgebaut wird ist dann ja auch egal.