K |
K |
(Der Versionsvergleich bezieht 11 dazwischenliegende Versionen mit ein.) |
Zeile 1: |
Zeile 1: |
- | Zum Erstellen von Tests werden Klassen verwendet. Alle öffentlichen Methoden einer Testklasse werden von SimplyVBUnit als Test-Methode verwendet.
| + | Diese Seite ist umgezogen: [http://de.accunit.access-codelib.net/Tests_erstellen Tests erstellen] |
- | | + | |
- | ==== Einfachste Form einer Testklasse ====
| + | |
- | <source lang="vb">
| + | |
- | Option Explicit
| + | |
- | | + | |
- | 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>
| + | |
- | | + | |
- | Falls dieser Test vom AccUnit-Add-In automatisch aus den Klassen des VB-Projektes erkannt werden soll, ist noch folgende Zeile im Kopfbereich der Klasse einzufügen:
| + | |
- | <source lang="vb">
| + | |
- | '<AccUnit><testclass>true</testclass></AccUnit>
| + | |
- | </source>
| + | |
- | | + | |
- | ==== 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 Testmethoden 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 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 der Fertigstellung 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>
| + | |