Den "Ich-werfe-mit-Fremdwörtern-um-mich-anstatt-zu-sagen-was-ich-meine-weil-klingt-cooler"-Teil.Welchen Teil von "generische Persistenzschicht" hast du nicht verstanden?
Nein. Buzwwording lehne ich selbst ab.DeathAndPain hat geschrieben:Den "Ich-werfe-mit-Fremdwörtern-um-mich-anstatt-zu-sagen-was-ich-meine-weil-klingt-cooler"-Teil.Welchen Teil von "generische Persistenzschicht" hast du nicht verstanden?
An diesen Satz musste ich gerade denken, weil ich Unit-Tests schreibe. Frage an dich: Wie mockst du einen DB-Zugriff, wenn du selbigen nicht kapselst? Schon um des Mocking willen lohnt es sich, den SELECT in eine eigene Methode zu schreiben. Oder schreibst du keine Unit-Tests? Bist du auch so einer, der einmal F8 drückt und sagt "ist getestet" wenn es nicht dumpt?DeathAndPain hat geschrieben:Sobald man eine Sammlung zusammengehörender Daten lesen möchte, zwischen denen ein logischer Zusammenhang besteht, so dass man solch Sammlung häufiger benötigt, macht eine Kapselung Sinn. Aber nicht für den einzelnen SELECT.
Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
deejey
na einfach reinbratzen in die VBAK, ist doch das Entwicklungssystem, ausserdem werden sie eh wieder entfernt automatisch beim Beenden der Testunit.ralf.wenzel hat geschrieben:Du schreibst mal eben in die VBAK???? OMG
Wieso muss mein SELECT erkennen, dass der Test auf ihn zugreift? Dafür hab ich doch die lokale Subklasse, die ich aufrufen kann.
Also, wenn ich eine Testklasse anlege (die per Definition eine lokale Klasse ist), baue ich dazu eine lokale Hilfsklasse. Diese lokale Hilfsklasse erbt von der Klasse mit der zu testenden Methode, weshalb ich sie überschreiben kann. Geht natürlich mit finalen Klassen nicht.deejey hat geschrieben:na einfach reinbratzen in die VBAK, ist doch das Entwicklungssystem, ausserdem werden sie eh wieder entfernt automatisch beim Beenden der Testunit.ralf.wenzel hat geschrieben:Du schreibst mal eben in die VBAK???? OMG
Wieso muss mein SELECT erkennen, dass der Test auf ihn zugreift? Dafür hab ich doch die lokale Subklasse, die ich aufrufen kann.
Wie funktioniert das mit den lokalen Subklassen? Sie erben alles, jetzt überschreibst du wohl die methode select_vbak der Unterklasse mit ergebnis_vbak = .....?
Definitivdeejey hat geschrieben:Ich muss mich mehr mit dem OO-Krempel beschäftigen
Mir fällt da spontan als Alternative das "ABAP Test Double Framework" ein.ralf.wenzel hat geschrieben:An diesen Satz musste ich gerade denken, weil ich Unit-Tests schreibe. Frage an dich: Wie mockst du einen DB-Zugriff, wenn du selbigen nicht kapselst?DeathAndPain hat geschrieben:Sobald man eine Sammlung zusammengehörender Daten lesen möchte, zwischen denen ein logischer Zusammenhang besteht, so dass man solch Sammlung häufiger benötigt, macht eine Kapselung Sinn. Aber nicht für den einzelnen SELECT.
Da das ja eins deiner Lieblingsargumente ist. Mich würde hier im Forum mal interessieren wie viele der Forumsteilnehmer tatsächlich solche Unit-Tests schreiben (müssen/dürfen). Meine Erfahrung lehrt mich leider, dass viele Auftraggeber, die ihr SAP selbst nutzen und nicht als Partner ein Addon vertreiben wollen, das Testen nicht honorieren - im wahrsten Sinne des Wortes.ralf.wenzel hat geschrieben:DeathAndPain hat geschrieben:[...]Oder schreibst du keine Unit-Tests? Bist du auch so einer, der einmal F8 drückt und sagt "ist getestet" wenn es nicht dumpt?
Ich will das, glaube ich, gar nicht wissen. Sonst zerbreche ich wieder irgendwas.....black_adept hat geschrieben:Da das ja eins deiner Lieblingsargumente ist. Mich würde hier im Forum mal interessieren wie viele der Forumsteilnehmer tatsächlich solche Unit-Tests schreiben (müssen/dürfen).
Bei normaler Streuung gibt es auch Fälle, wo sich die Praxis mal genau so verhält wie die Theorie es gerne hätte Außerdem hast du ja schon erklärt, dass du nicht der Theorie konforme Projekte ablehnst, so dass deine Filterblase die "schönen" Fälle sind.ralf.wenzel hat geschrieben:Dann sind meine Projekte, die ich mache, Einbildung?
Leider sprichst du mir aus dem Herzen.ralf.wenzel hat geschrieben:Und in der Gesamtrechnung spart das Zeit und Geld. Problem ist: Projekt ist Projekt und Wartung ist Wartung.
Genau, und wenn wir das alle täten, wäre die Welt ein wenig bunter. Übrigens sind mehr und mehr Kunden aufgeschlossen gegenüber gescheiter Entwicklung.black_adept hat geschrieben:Bei normaler Streuung gibt es auch Fälle, wo sich die Praxis mal genau so verhält wie die Theorie es gerne hätte Außerdem hast du ja schon erklärt, dass du nicht der Theorie konforme Projekte ablehnst, so dass deine Filterblase die "schönen" Fälle sind.ralf.wenzel hat geschrieben:Dann sind meine Projekte, die ich mache, Einbildung?