AccUnit

Unit Testing in VBA - Microsoft Access, Excel, …

AccUnit-Attribute

Aus AccUnit
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Syntax)
 
(Der Versionsvergleich bezieht 5 dazwischenliegende Versionen mit ein.)
Zeile 29: Zeile 29:
==== Verwendbar in ====
==== Verwendbar in ====
* Deklarationsbereich einer Testmethode
* Deklarationsbereich einer Testmethode
 +
 +
==== Beispiel ====
 +
 +
===== Methode/Funktion =====
 +
 +
<source lang="vb">
 +
Public Function GetFoo(ByVal JaNein As String) As Boolean
 +
    GetFoo = False
 +
    If JaNein = "Ja" Then GetFoo = True
 +
End Function
 +
</source>
 +
 +
===== Test Methode =====
 +
 +
<source lang="vb">
 +
'AccUnit:Row("Ja", True)
 +
'AccUnit:Row("Nein", False)
 +
Public Sub GetFoo_ValueTest(ByVal value As String, ByVal Expected As Boolean)
 +
    Assert.That GetFoo(value), Iz.EqualTo(Expected)
 +
End Sub
 +
</source>
 +
 +
== AccUnit:TestClass:Tags ==
 +
Markiert Testklassen. Kann zum Filtern der Tests verwendet werden.
 +
 +
==== Syntax ====
 +
<source>' AccUnit:TestClass:Tags(Tag1, Tag2, Tag3)</source>
 +
 +
==== Verwendbar in ====
 +
* Deklarationsbereich einer Testklasse
== AccUnit:Tags ==
== AccUnit:Tags ==
-
Markiert Testklassen bzw. Testmethoden. Kann zum Filtern der Tests verwendet werden.
+
Markiert Testmethoden. Kann zum Filtern der Tests verwendet werden.
==== Syntax ====
==== Syntax ====
Zeile 38: Zeile 68:
==== Verwendbar in ====
==== Verwendbar in ====
-
* Deklarationsbereich einer Testklasse
 
* Deklarationsbereich einer Testmethode
* Deklarationsbereich einer Testmethode
 +
 +
==== Bemerkung ====
 +
* Tags auf Methodenebene werden in der Anzeige der Testergebnisse automatisch auf Ebene der jeweiligen Testklasse mit angezeigt.
== AccUnit:Ignore ==
== AccUnit:Ignore ==
Zeile 81: Zeile 113:
* Produktionscode der selbst Transaktionen verwendet.
* Produktionscode der selbst Transaktionen verwendet.
* Per OleDb eingebundene SQL-Server Backends
* Per OleDb eingebundene SQL-Server Backends
 +
 +
==== Vorsicht ====
 +
Der Rollback setzt den Zähler für AutoWert-Spalten nicht zurück. Nach einem zurückgerollten Insert ist der dabei vergebene AutoWert nicht mehr verfügbar.

Aktuelle Version vom 23:07, 14. Mai 2012

AccUnit:TestClass

Markiert eine Klasse als Testklasse.

Syntax

' AccUnit:TestClass

Verwendbar in

  • Deklarationsbereich einer Klasse

AccUnit:TestRelated

Markiert eine Klasse, Standardmodul bzw. Formulare/Berichte als Hilfsmodule für Tests. Diese Codemodule bzw. Formulare/Berichte können wie Testklassen importiert bzw. exportiert werden.

Syntax

' AccUnit:TestRelated

Verwendbar in

  • Deklarationsbereich einer Klasse
  • Deklarationsbereich eines Standardmoduls
  • Deklarationsbereich eines Formular- oder Bericht-Moduls


AccUnit:Row

Übergabe der Row-Test-Parameter

Syntax

' AccUnit:Row(Param1, Param2)

Verwendbar in

  • Deklarationsbereich einer Testmethode

Beispiel

Methode/Funktion
Public Function GetFoo(ByVal JaNein As String) As Boolean
    GetFoo = False
    If JaNein = "Ja" Then GetFoo = True
End Function
Test Methode
'AccUnit:Row("Ja", True)
'AccUnit:Row("Nein", False)
Public Sub GetFoo_ValueTest(ByVal value As String, ByVal Expected As Boolean)
    Assert.That GetFoo(value), Iz.EqualTo(Expected)
End Sub

AccUnit:TestClass:Tags

Markiert Testklassen. Kann zum Filtern der Tests verwendet werden.

Syntax

' AccUnit:TestClass:Tags(Tag1, Tag2, Tag3)

Verwendbar in

  • Deklarationsbereich einer Testklasse


AccUnit:Tags

Markiert Testmethoden. Kann zum Filtern der Tests verwendet werden.

Syntax

' AccUnit:Tags(Tag1, Tag2, Tag3)

Verwendbar in

  • Deklarationsbereich einer Testmethode

Bemerkung

  • Tags auf Methodenebene werden in der Anzeige der Testergebnisse automatisch auf Ebene der jeweiligen Testklasse mit angezeigt.

AccUnit:Ignore

Testklasse oder Methode nicht ausführen.

Syntax

' AccUnit:Ignore
' AccUnit:Ignore(Comment)
' AccUnit:Row(Param1, Param2).Ignore(Comment)

Verwendbar in

  • Deklarationsbereich einer Klasse
  • Deklarationsbereich einer Testmethode
  • Erweiterung des Row-Attributs

AccUnit:ClickingMsgBox

Mausklicks für Msgbox-Ersatzfunktion

Syntax

' AccUnit:ClickingMsgBox(vbYes, vbOk, vbNo)
' AccUnit:Row(Param1, Param2).ClickingMsgBox(vbYes, vbOk, vbNo))

Verwendbar in

  • Deklarationsbereich einer Testmethode
  • Erweiterung des Row-Attributs


AccUnit:Rollback

Erzeugt vor jedem Lauf der Testmethode eine Transaktion auf den Standard Jet-Workspace (DAO) und rollt diese Transaktion nach dem Lauf der Testmethode wieder zurück.

Syntax

' AccUnit:Rollback

Verwendbar in

  • Deklarationsbereich einer Testmethode

Nicht verwendbar bei

  • Eingebauten Domänenaggregatfunktionen (DLookup, DCount, etc.) - hier Ersatzfunktionen verwenden
  • Produktionscode der selbst Transaktionen verwendet.
  • Per OleDb eingebundene SQL-Server Backends

Vorsicht

Der Rollback setzt den Zähler für AutoWert-Spalten nicht zurück. Nach einem zurückgerollten Insert ist der dabei vergebene AutoWert nicht mehr verfügbar.

Persönliche Werkzeuge