Wiki der Access Code Library

Gemeinsam zu mehr Effizienz in der Anwendungserstellung

AccUnit:Tests erstellen

Aus Access Code Library
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K
K (Der Seiteninhalt wurde durch einen anderen Text ersetzt: „Diese Seite ist umgezogen: [http://de.accunit.access-codelib.net/Tests_erstellen Tests erstellen]“)
 
Zeile 1: Zeile 1:
-
{{Hierarchy header}}
+
Diese Seite ist umgezogen: [http://de.accunit.access-codelib.net/Tests_erstellen Tests erstellen]
-
Zum Erstellen von Tests werden Klassen verwendet. Alle öffentlichen Methoden einer Testklasse werden von SimplyVBUnit als Test-Methode verwendet.
+
-
 
+
-
==== Einfachste Form einer Testklasse ====
+
-
<source lang="vb">
+
-
Option Explicit
+
-
 
+
-
' AccUnit:TestClass
+
-
 
+
-
Public Sub SimpleTestProc_Success()
+
-
 
+
-
  Assert.That 1, Iz.EqualTo(1)
+
-
 
+
-
End Sub
+
-
 
+
-
Public Sub SimpleTestProc_Failure()
+
-
 
+
-
  Assert.That 1, Iz.EqualTo(0)
+
-
 
+
-
End Sub
+
-
</source>
+
-
 
+
-
AccUnit:TestClass sorgt dafür, dass dieser Test vom AccUnit-Add-In aus den Klassen des VB-Projektes erkannt wird.
+
-
 
+
-
==== Row Tests ====
+
-
Bei ''Row Tests'' wird eine Testmethode mit unterschiedlichen Parameterwerten ausgeführt.
+
-
Damit SimplyVBUnit diese Tests erkennt, muss ''SimplyVBUnit.ITestCaseData'' als Schnittstelle verwendet werden.
+
-
<source lang="vb">
+
-
Implements SimplyVBUnit.ITestCaseData
+
-
 
+
-
Private Sub ITestCaseData_GetTestData(ByVal test As SimplyVBUnit.TestDataBuilder)
+
-
  ' hier erfolgt die Übergabe der Test-Werte
+
-
End Sub
+
-
</source>
+
-
Um die Übergabe der Testwerte etwas übersichtlicher zu gestalten, kann noch zusätzlich AccUnit_Integration.ITestManagerBridge implementiert werden.
+
-
Damit wird es möglich, die Testwerte als Kommentarzeile oberhalb der jeweiligen Testmethode zu schreiben.
+
-
<source lang="vb">
+
-
Implements AccUnit_Integration.ITestManagerBridge
+
-
Implements SimplyVBUnit.ITestCaseData
+
-
 
+
-
Private TestManager As AccUnit_Integration.TestManager
+
-
 
+
-
Private Sub ITestManagerBridge_InitTestManager(ByVal NewTestManager As AccUnit_Integration.ITestManagerComInterface)
+
-
  Set TestManager = NewTestManager
+
-
End Sub
+
-
 
+
-
Private Function ITestManagerBridge_GetTestManager() As AccUnit_Integration.ITestManagerComInterface
+
-
  Set ITestManagerBridge_GetTestManager = TestManager:
+
-
End Function
+
-
 
+
-
Private Sub ITestCaseData_GetTestData(ByVal test As SimplyVBUnit.TestDataBuilder)
+
-
  TestManager.GetTestData test
+
-
End Sub
+
-
 
+
-
'TestManager.Row("a", "b", "ab")
+
-
'TestManager.Row("abc", "def", "abcdef")
+
-
Public Sub RowTest_Sub_Strings(ByVal x As String, ByVal y As String, ByVal expected As String)
+
-
 
+
-
  Dim actual As String
+
-
  actual = x + y
+
-
 
+
-
  Assert.That actual, Iz.EqualTo(expected)
+
-
 
+
-
End Sub
+
-
</source>
+
-
Die Dummy-Methode ''Row'' ermöglicht die Nutzung von IntelliSense, wenn die Code-Zeile erst nach dem Schreiben der Parameterwerte auskommentiert wird.
+
-
 
+
-
Als weitere Variante kann statt ''TestManager.Row'' der Prozedurname verwendet werden.
+
-
<source lang="vb">
+
-
'RowTest_Sub_Strings("a", "b", "ab")
+
-
'RowTest_Sub_Strings("abc", "def", "abcdef")
+
-
Public Sub RowTest_Sub_Strings(ByVal x As String, ByVal y As String, ByVal expected As String)
+
-
</source>
+
-
 
+
-
==== AccUnit Integration ====
+
-
Um die volle Funktionsfähigkeit von AccUnit zu nutzen, ist es erforderlich, zusätzlich zu ''ITestManagerBridge'' noch ''SimplyVBUnit.ITestFixture'' zu implementieren.
+
-
<source lang="vb">
+
-
Option Compare Text
+
-
Option Explicit
+
-
 
+
-
'AccUnit:TestClass
+
-
 
+
-
'####################################################################
+
-
' Interfaces
+
-
'
+
-
'SimplyVBUnit: ITestFixture.AddTestCases
+
-
Implements SimplyVBUnit.ITestFixture
+
-
 
+
-
'AccUnit: test manager
+
-
Implements AccUnit_Integration.ITestManagerBridge
+
-
Private TestManager As AccUnit_Integration.TestManager
+
-
 
+
-
Private Sub ITestManagerBridge_InitTestManager(ByVal NewTestManager As AccUnit_Integration.ITestManagerComInterface)
+
-
  Set TestManager = NewTestManager
+
-
End Sub
+
-
 
+
-
Private Function ITestManagerBridge_GetTestManager() As AccUnit_Integration.ITestManagerComInterface
+
-
  Set ITestManagerBridge_GetTestManager = TestManager:
+
-
End Function
+
-
 
+
-
Private Sub ITestFixture_AddTestCases(ByVal SvuTestCaseCollector As SimplyVBUnit.TestCaseCollector)
+
-
  TestManager.AddTestCases SvuTestCaseCollector
+
-
End Sub
+
-
 
+
-
'####################################################################
+
-
' Tests
+
-
'
+
-
...
+
-
</source>
+
-
Mit diesem Klassenkopf wird es möglich, einzelne Tests über AccUnit ausführen zu lassen.
+
-
 
+
-
 
+
-
{{Hierarchy footer}}
+
-
{{related links|links=[[AccUnit|AccUnit Startseite]] &diams; [[AccUnit:Datengetriebene_Tests_in_SimplyVBUnit_v3|Funktionsweise von datengetriebenen Tests in SimplyVBUnit v3]]}}
+

Aktuelle Version vom 19:11, 13. Okt. 2013

Diese Seite ist umgezogen: Tests erstellen