Seite 1 von 1

Testerstellung vereinfachen

BeitragVerfasst: Mi 3. Nov 2010, 21:21
von Josef Pötzl
Hallo!

Ich überlege, wie man die Erstellung von Testklassen vereinfachen könnte.

Grundidee: in einem beliebigen Code-Modul kann man per Kontext-Menü die Erstellung einer neue Testklasse bzw. einen Test-Methode zur aktiven Prozedur auslösen.

Ich stelle mir vor, dass vor der Erstellung der Testklasse eine Maske zur Eingabe der Texte kommt.
z. B.:
- Klassenname (Vorgabe = Name des Codemoduls + "Tests" am Ende)
- Name der Testmethode (3-teiliger Name wie von Paul im AEK-Vortrag vorgestellt)

Falls eine bestimmte Prozedur den Fokus hatte, könnte man auch gleich noch die Option für Row-Tests zur Verfügung stellen und automatisiert die Parameter mit der Row-Test-Konfiguration erzeugen.
Falls der Cursor nur im Header des Code-Moduls steht, könnte (optional) statt einer bestimmten Testmethode alle Public-Prozeduren (bzw. eine Auswahl davon) aus dem Codemodul als Test-Methoden in der Testklasse eingefügt werden.

Da mir noch die "Super-Idee" fehlt, wie ich das Formular gestalten könnte, freue ich mich über Vorschläge zum Layout bzw. um Hinweise, was man in so einem Formular sonst noch einstellen könnte. :)

mfg
Josef

Re: Testerstellung vereinfachen

BeitragVerfasst: Mi 3. Nov 2010, 23:22
von Paul Rohorzka
Hallo Josef!

Hier das Ergebnis meiner ersten Überlegungen zu dem Thema:
  • Name des Testmoduls (Textfeld, vorbelegt mit <MyModule>Tests
  • Auswahlmöglichkeit der Public/Friend Members
    • Tree mit Checkboxes gruppiert nach Methoden und Properties
    • Vorauswahl:
      • Alle Members bei Kontext Code-Modul (Deklarationsbereich)
      • Aktueller Member bei Kontext eines Members
  • Wenn genau ein Member ausgewählt die Eingabe der anderen beiden Bestandteile des Namens der Testmethode ermöglichen, sonst sind die Textboxen ausgegraut.
    • 2 Textboxes
      • StateUnderTest
      • ExpectedBehaviour

Der Dialog könnte in etwa so aussehen:
Bild

Fälle bezüglich Existenz des Testmoduls:
Testmodul
  • existiert
    • ist Standardmodul -> Option Klassenmodul daraus zu machen (Inhalt kopieren, Modul löschen, Klassenmodul gleichen Namens einfügen, Inhalt einfügen):
      Bild
    • ist Klassenmodul
      • ist AccUnit:TestClass -> nichts zu tun
      • ist nicht AccUnit:TestClass -> Option Testklasse daraus zu machen (AccUnit:TestClass-Attribut einfügen)
        Bild
  • existiert nicht
    • erstellen

Wenn in der Testklasse bereits ein Member mit Name der Testmethode existiert:
  • Bestehenden Member belassen
  • Neuen Member mit dem gewünschten Namen und angehängter Ziffer einfügen
    Code: Alles auswählen
    Public Sub MyMethod_WithNothing_ReturnsFalse1()
       ' ...
    End Sub
     

Zum Einfügen von RowTests würde ich eher einen eigenen Dialog nehmen.

LG,
P

Re: Testerstellung vereinfachen

BeitragVerfasst: Do 4. Nov 2010, 09:28
von Josef Pötzl
Hallo Paul!

Zum Einfügen von RowTests würde ich eher einen eigenen Dialog nehmen.

Ich dachte nur, dass man zum Zeitpunkt der Test-Erstellung die zu testende Prozedur noch kennt und dann die Parameter für die Testmethode aus den Parametern der Prozedur auswählen könnte.
ProzedurParameter.gif
ProzedurParameter.gif (10.59 KiB) 17212-mal betrachtet

Wird es unübersichtlich, wenn man die Parameter auch im Baum auswählen kann?

Zum Erstellen der Row-Test-Zeilen würde ich auch zu einem extra Dialog tendieren, damit die Masken nicht zu voll werden.

mfg
Josef

Re: Testerstellung vereinfachen

BeitragVerfasst: Mi 24. Nov 2010, 11:05
von FireWalkerHH
Moin Moin,

das liest sich doch gar nicht so schlecht.

Bin gespannt was Ihr daraus macht!

Gruß aus Hamburg,
Thomas

Re: Testerstellung vereinfachen

BeitragVerfasst: Di 14. Dez 2010, 23:22
von Josef Pötzl
Hallo!

Der Dialog kann nun mit Version 0.9.4 getestet werden.
Wer noch Tipps zur Verbesserung der Bedienung hat - nur her damit, denn das Dingens ist noch nicht fertig. :)

mfg
Josef

Re: Testerstellung vereinfachen

BeitragVerfasst: Do 16. Dez 2010, 15:32
von FireWalkerHH
Mhh, magst Du mir verraten wie man an den Dialog ran kommt? Ich bin anscheinend gerade blind ...

Tante Edith sagt: Habs gefunden :shock:

Re: Testerstellung vereinfachen

BeitragVerfasst: Do 16. Dez 2010, 21:11
von Josef Pötzl
magst Du mir verraten wie man an den Dialog ran kommt?

Falls noch jemand danach sucht ;): über das Kontextmenü im VBA-Editor, wenn ein Code-Modul aktiv ist, das keine Testklasse ist.
Anm.: Ich werde das aber auch noch ins Hauptmenü einbauen.

Ein Video mit dem Einfügedialog: http://access-codelib.net/videos/AccUni ... egeDialog/

mfg
Josef