Υπηρεσία SFUnitTests.UnitTest

Περιεχόμενα

# Υπηρεσία SFUnitTests. UnitTest

Η υπηρεσία UnitTest παρέχει ένα πλαίσιο για την αυτοματοποίηση δοκιμών μονάδας χρησιμοποιώντας τη γλώσσα Basic, συμπεριλαμβανομένης της δυνατότητας να:

- Συγκεντρώσετε τις περιπτώσεις δοκιμών σε σειρές δοκιμών και δοκιμές μονάδων.

- Μοιραστείτε τον κωδικό εγκατάστασης και τερματισμού λειτουργίας μεταξύ των δοκιμαστικών περιπτώσεων.

- Αναφέρετε τα αποτελέσματα των δοκιμών χρησιμοποιώντας την Console.

Τόσο οι δοκιμές μονάδας όσο και ο προς δοκιμή κωδικός πρέπει να είναι γραμμένοι σε Basic. Ο κώδικας που δοκιμάζεται μπορεί να καλεί συναρτήσεις γραμμένες σε άλλες γλώσσες.

Η υπηρεσία UnitTest δεν είναι διαθέσιμη για σενάρια Python.

## Ορισμοί

### Δοκιμαστική περίπτωση

Μια δοκιμαστική περίπτωση είναι η μεμονωμένη μονάδα δοκιμής. Ελέγχει για μια συγκεκριμένη απόκριση σε ένα συγκεκριμένο σύνολο εισόδων.

Στην υπηρεσία UnitTest, μια δοκιμαστική περίπτωση αντιπροσωπεύεται από ένα μόνο Sub της Basic, του οποίου το όνομα ξεκινά με ένα κοινό πρόθεμα (η προεπιλογή είναι "Test_").

Η δοκιμαστική περίπτωση αποτυγχάνει εάν μία από τις μεθόδους AssertX επιστρέψει False.

### Δοκιμαστική Σουίτα

Μια δοκιμαστική σουίτα είναι μια συλλογή από δοκιμαστικές περιπτώσεις που πρέπει να εκτελεστούν μαζί.

Όλες οι περιπτώσεις δοκιμών μιας σουίτας αποθηκεύονται σε μία μόνο ενότητα Basic.

Μια σουίτα δοκιμών μπορεί να εφαρμόσει τις μεθόδους SetUp και TearDown για να προετοιμαστεί για δοκιμαστικές περιπτώσεις στη μονάδα της.

### Δοκιμή μονάδας

Μια δοκιμή πλήρους μονάδας αποτελείται από ένα σύνολο δοκιμαστικών σειρών στην ίδια βιβλιοθήκη Basic.

## Κλήση υπηρεσίας

Πριν χρησιμοποιήσετε την υπηρεσία UnitTest, πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:

• Οι μακροεντολές Basic απαιτούν τη φόρτωση της βιβλιοθήκης ScriptForge χρησιμοποιώντας την ακόλουθη πρόταση:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Τα σενάρια Python απαιτούν εισαγωγή από την ενότητα scriptforge:
από το scriptforge import CreateScriptService

### Απλή λειτουργία

Καλέστε την υπηρεσία σε απλή λειτουργία για να καλέσετε συναρτήσεις AssertX χωρίς να χρειάζεται να δημιουργήσετε την πλήρη ιεραρχία των σειρών δοκιμών και των δοκιμαστικών περιπτώσεων.

Σε απλή λειτουργία, η υπηρεσία καλείται μέσα στη δοκιμαστική περίπτωση, όπως φαίνεται στο παρακάτω παράδειγμα:

        Sub SimpleTest
            On Local Error GoTo CatchError
            Dim myTest As Variant
            myTest = CreateScriptService("UnitTest")
            ' Μερικές εικονικές δοκιμές
            myTest.AssertEqual(1 + 1, 2)
            myTest.AssertEqual(1 - 1, 0)
            MsgBox ("Όλες οι δοκιμές πέρασαν")
            Exit Sub
        CatchError:
            myTest.ReportError ("Μια δοκιμή απέτυχε")
        End Sub

Σε αυτό το παράδειγμα, εάν κάποια από τις κλήσεις AssertEqual αποτύχει, ο διερμηνέας θα μεταβεί στην ετικέτα CatchError και θα αναφέρει το σφάλμα καλώντας τη μέθοδο ReportError .

### Πλήρης λειτουργία

Όταν καλείται σε πλήρη λειτουργία, η δημιουργία υπηρεσίας είναι εξωτερική του κωδικού δοκιμής και όλες οι δοκιμές οργανώνονται σε δοκιμαστικές περιπτώσεις και σειρές δοκιμών μέσα σε μία μόνο βιβλιοθήκη.

Το παρακάτω παράδειγμα δημιουργεί μια παρουσία UnitTest της οποίας οι δοκιμές βρίσκονται μέσα στο τρέχον έγγραφο (ThisComponent) στη βιβλιοθήκη "Tests".

        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        Dim myUnitTest As Variant
        myUnitTest = CreateScriptService("UnitTest", ThisComponent, "Tests")

### Ένα μινιμαλιστικό παράδειγμα σε πλήρη λειτουργία

Θεωρήστε ότι ένα αρχείο ODS έχει μια λειτουργική μονάδα με το όνομα "MathUtils" στη "Τυπική" βιβλιοθήκη του με τον ακόλουθο κώδικα:

        ' Κώδικας στη λειτουργική μονάδα Standard.MathUtils
        Function Sum(a, b) As Double
            Sum = a + b
        End Function

        Function Multiply(a, b) As Double
            Multiply = a * b
        End Function

Για να δημιουργήσετε μια πλήρη δοκιμαστική σειρά, σκεφτείτε ότι μια νέα βιβλιοθήκη με το όνομα "Tests" δημιουργείται στο αρχείο με μια λειτουργική μονάδα "AllTests" που περιέχει τον παρακάτω κώδικα:

        ' Κώδικας στη λειτουργική μονάδα Tests.AllTests
        Sub Main()
            GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
            Dim test As Variant
            test = CreateScriptService("UnitTest", ThisComponent, "Tests")
            test.RunTest("AllTests")
            test.Dispose()
        End Sub

        Sub Setup(test)
            ' Ο κώδικας προετοιμασίας εκτελέστηκε πριν από την πρώτη δοκιμαστική περίπτωση
            Dim exc As Variant
            exc = CreateScriptService("Exception")
            exc.Console(Modal := False)
        End Sub

        Sub TearDown(test)
            ' Κλήση προαιρετικού κωδικού καθαρισμού μετά την τελευταία δοκιμαστική περίπτωση
        End Sub

        Sub Test_Sum(test)
            On Local Error GoTo CatchError
            test.AssertEqual(Sum(1, 1), 2, "Άθροισμα δύο θετικών ακεραίων")
            test.AssertEqual(Sum(-10, 20), 10, "Άθροισμα αρνητικών και θετικών ακεραίων")
            test.AssertEqual(Sum(1,5, 1), 2,5, "Άθροισμα τιμών κινητής υποδιαστολής και ακέραιων αριθμών")
            Exit Sub
        CatchError:
            test.ReportError ("Η μέθοδος άθροισης είναι κατεστραμμένη")
        End Sub

        Sub Test_Multiply(test)
            On Local Error GoTo CatchError
            test.AssertEqual(Multiply(2, 2), 4, "Πολλαπλασιασμός δύο θετικών ακεραίων")
            test.AssertEqual(Multiply(-4, 2), -8, "Πολλαπλασιασμός αρνητικών και θετικών ακεραίων")
            test.AssertEqual(Multiply(1.5, 3), 4.5, "Πολλαπλασιασμός τιμών κινητής υποδιαστολής και ακεραίων")
            Exit Sub
        CatchError:
            test.ReportError ("Η μέθοδος Multiply είναι κατεστραμμένη")
        End Sub

Η παραπάνω σειρά δοκιμών αποτελείται από δύο δοκιμαστικές περιπτώσεις Test_Sum και Test_Multiply. Για να εκτελέσετε όλες τις δοκιμές, απλώς εκτελέστε τη μέθοδο Main από τη λειτουργική μονάδα "AllTests".

Η Console από την υπηρεσία Exception χρησιμοποιείται ως η προεπιλεγμένη έξοδος για να εκτυπώσετε τα αποτελέσματα των δοκιμών. Μετά την εκτέλεση του παραπάνω παραδείγματος, η ακόλουθη έξοδος θα εμφανιστεί στην κονσόλα:

        ' RUNTEST ENTER testsuite='Tests.AllTests', pattern='Test_*'
        '   SETUP Tests.AllTests.Setup() ENTER
        '   SETUP Tests.AllTests.Setup() EXIT
        '   TESTCASE Tests.AllTests.Test_Multiply() ENTER
        '   TESTCASE Tests.AllTests.Test_Multiply() EXIT (0,017 sec)
        '   TESTCASE Tests.AllTests.Test_Sum() ENTER
        '   TESTCASE Tests.AllTests.Test_Sum() EXIT (0,016 sec)
        '   TEARDOWN Tests.AllTests.TearDown() ENTER
        '   TEARDOWN Tests.AllTests.TearDown() EXIT
        ' RUNTEST EXIT testsuite='Tests.AllTests' (0,223 sec)

Εάν κάποια από τις μεθόδους AssertEqual αποτύχει κατά τη διάρκεια αυτών των δοκιμών, προστίθεται ένα μήνυμα σφάλματος στην κονσόλα.

## Ιδιότητες

Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή
--- | --- | --- | ---
LongMessage | Όχι | Boolean | Όταν οριστεί σε True (προεπιλογή), η κονσόλα εμφανίζει το τυπικό μήνυμα που προσαρτάται στο μήνυμα που παρέχεται από τον ελεγκτή. Όταν False, χρησιμοποιείται μόνο το μήνυμα που ορίζεται από τον ελεγκτή.
ReturnCode | Ναι | Integer | Η τιμή επιστράφηκε από το RunTest μετά την ολοκλήρωση της δοκιμής μονάδας. Ακολουθεί ένας κατάλογος με πιθανές τιμές: 0 - Η δοκιμή ολοκληρώθηκε χωρίς σφάλματα, ή η δοκιμή δεν ξεκίνησε 1 - Ένας ισχυρισμός σε μια δοκιμαστική περίπτωση επέστρεψε False 2 - Ένα SkipTest εκδόθηκε από τη μέθοδο Setup, ή με μία από τις περιπτώσεις δοκιμής. 3 - Μη φυσιολογικό τέλος της δοκιμής
Verbose | Όχι | Boolean | Όταν οριστεί σε True, όλοι οι ισχυρισμοί αναφέρονται στην κονσόλα (αποτυχία ή όχι). Όταν είναι False (προεπιλογή), αναφέρονται μόνο αποτυχημένοι ισχυρισμοί.
WhenAssertionFails | Όχι | Integer | Καθορίζει τι γίνεται όταν ένας ισχυρισμός αποτυγχάνει. Ακολουθεί ένας κατάλογος με πιθανές τιμές: 0 - Αγνόηση της αποτυχίας και συνέχιση της εκτέλεσης της δοκιμής 1 - Η μέθοδος TearDown στη λειτουργική μονάδα εκτελείται στην τρέχουσα σειρά δοκιμών και ξεκινά η επόμενη σειρά (προεπιλογή σε πλήρη λειτουργία).< br/>2 - Διακοπή αμέσως (προεπιλογή σε απλή λειτουργία)

Κατάλογος μεθόδων στην υπηρεσία UnitTest
AssertAlmostEqual AssertEqual AssertFalse AssertGreater AssertGreaterEqual AssertIn AssertIsInstance AssertIsNothing AssertLike | AssertNotRegex AssertIsNull AssertLess AssertLessEqual AssertNotAlmostEqual AssertNotEqual AssertNotIn AssertNotInstance AssertNotLike | AssertNotNothing AssertNotNull AssertRegex AssertTrue Fail Log ReportError RunTest SkipTest

## Ορίσματα των μεθόδων AssertX

Όλοι οι ισχυρισμοί δοκιμάζουν μία ή δύο εκφράσεις, που αναφέρονται στο υπόλοιπο αυτής της σελίδας βοήθειας ως A και B. Είναι πάντα τα πρώτα ένα ή δύο ορίσματα στη μέθοδο AssertX.

Όλες οι μέθοδοι AssertX δέχονται ένα όρισμα message που καθορίζει ένα προσαρμοσμένο μήνυμα που πρέπει να αναφέρεται στην κονσόλα σχετικά με τον ισχυρισμό. Από προεπιλογή χρησιμοποιείται μια κενή συμβολοσειρά. Αυτό το όρισμα βρίσκεται πάντα στην τελευταία θέση του ισχυρισμού.

Ορισμένες μέθοδοι AssertX δέχονται επίσης πρόσθετα ορίσματα, όπως περιγράφονται από τη σύνταξή τους παρακάτω.

## AssertAlmostEqual

Επιστρέφει True όταν το A και το B είναι αριθμητικές τιμές και θεωρούνται ότι είναι κοντά η μία στην άλλη, δεδομένης μιας σχετικής ανοχής.

### Σύνταξη:

svc.AssertAlmostEqual(a: any, b: any, tolerance: double = 1E-09, message: str = ""): bool

Αυτός ο ισχυρισμός επιστρέφει True εάν πληρούνται οι δύο παρακάτω προϋποθέσεις:

- Τα Α και Β μπορούν να μετατραπούν στον τύπο Double.

- Η απόλυτη διαφορά μεταξύ Α και Β διαιρούμενη με τη μεγαλύτερη απόλυτη τιμή του Α ή του Β είναι χαμηλότερη από την τιμή που καθορίζεται στην tolerance.

## AssertEqual

Επιστρέφει True όταν τα A και B θεωρούνται ίσα.

### Σύνταξη:

svc.AssertEqual(a: any, b: any, message: str = ""): bool

Όταν τα Α και Β είναι βαθμωτά, επιστρέφεται True εάν:

- Και οι δύο εκφράσεις έχουν τον ίδιο VarType ή είναι και οι δύο αριθμητικές.

- Οι τιμές Μπουλ και οι αριθμητικές τιμές συγκρίνονται με τον τελεστή =.

- Οι συμβολοσειρές συγκρίνονται με την ενσωματωμένη συνάρτηση StrComp. Η σύγκριση γίνεται με διάκριση πεζών-κεφαλαίων.

- Οι ημερομηνίες και οι χρόνοι συγκρίνονται μέχρι τους δεύτερους.

- Τα Null, Empty και Nothing δεν είναι ίσα, αλλά το AssertEqual(Nothing, Nothing) επιστρέφει True.

- Τα αντικείμενα UNO συγκρίνονται με την ενσωματωμένη μέθοδο EqualUnoObjects.

- Σημειώστε ότι τα αντικείμενα Basic δεν είναι ποτέ ίσα.

Όταν οι Α και Β είναι πίνακες, επιστρέφεται True εάν:

- Και οι δύο πίνακες έχουν τον ίδιο αριθμό διαστάσεων (μέχρι 2 διαστάσεις) και τα κάτω και τα άνω όριά τους είναι ταυτόσημα για όλες τις διαστάσεις.

- Όλα τα στοιχεία και στους δύο πίνακες είναι ίσα, ένα προς ένα.

- Δύο κενοί πίνακες θεωρούνται ίσοι.

## AssertFalse

Επιστρέφει True όταν ο τύπος του A είναι Boolean και η τιμή του είναι False.

### Σύνταξη:

svc.AssertFalse(a: any, message: str = ""): bool

## AssertGreater

Επιστρέφει True, όταν το A είναι μεγαλύτερο από το B.

### Σύνταξη:

svc.AssertGreater(a: any, b: any, message: str = ""): bool

Η σύγκριση μεταξύ Α και Β προϋποθέτει τα εξής:

- Οι κατάλληλοι τύποι δεδομένων είναι String, Date ή αριθμητικοί.

- Και οι δύο εκφράσεις πρέπει να έχουν τον ίδιο VarType, ή και οι δύο πρέπει να είναι αριθμητικές.

- Οι συγκρίσεις συμβολοσειρών έχουν διάκριση πεζών-κεφαλαίων.

## AssertGreaterEqual

Επιστρέφει True, όταν το A είναι μεγαλύτερο ή ίσο του B.

### Σύνταξη:

svc.AssertGreaterEqual(a: any, b: any, message: str = ""): bool

Η σύγκριση μεταξύ Α και Β προϋποθέτει τα εξής:

- Οι κατάλληλοι τύποι δεδομένων είναι String, Date ή αριθμητικοί.

- Και οι δύο εκφράσεις πρέπει να έχουν τον ίδιο VarType, ή και οι δύο πρέπει να είναι αριθμητικές.

- Οι συγκρίσεις συμβολοσειρών έχουν διάκριση πεζών-κεφαλαίων.

## AssertIn

Επιστρέφει True όταν το A βρίσκεται στο B.

### Σύνταξη:

svc.AssertIn(a: any, b: any, message: str = ""): bool

Ο ισχυρισμός αυτός προϋποθέτει τα ακόλουθα:

- Η έκφραση Β μπορεί να είναι ένας πίνακας 1Δ, ένα αντικείμενο Dictionary της ScriptForge, ή μια συμβολοσειρά.

- Όταν η έκφραση Β είναι ένας πίνακας 1Δ, η έκφραση Α μπορεί να είναι ημερομηνία ή αριθμητική τιμή.

- Όταν η έκφραση Β είναι αντικείμενο Dictionary της ScriptForge, τότε η συμβολοσειρά Α αναζητείται μεταξύ των κλειδιών στο Β.

- Οι συγκρίσεις συμβολοσειρών έχουν διάκριση πεζών-κεφαλαίων.

## AssertIsInstance

Επιστρέφει True, όταν το A είναι μια παρουσία ενός συγκεκριμένου τύπου αντικειμένου, που προσδιορίζεται ως συμβολοσειρά που περιέχει το όνομα του τύπου.

### Σύνταξη:

svc.AssertIsInstance(a: any, objecttype: str, message: str = ""): bool

Η έκφραση Α μπορεί να είναι ένα από τα ακόλουθα:

- Ένα αντικείμενο ScriptForge. Σε αυτήν την περίπτωση, το όρισμα objecttype είναι μια συμβολοσειρά όπως "DICTIONARY", "calc", "Dialog" κ.λπ.

- Ένα αντικείμενο UNO. Σε αυτήν την περίπτωση, το όρισμα objecttype πρέπει να είναι μια συμβολοσειρά ταυτόσημη με την τιμή που επιστρέφεται από τη μέθοδο SF_Session.UnoObjectType().

- Ένας πίνακας. Σε αυτήν την περίπτωση, το όρισμα objecttype αναμένεται να είναι "array".

- Οποιαδήποτε άλλη μεταβλητή (ούτε Object, ούτε Array). Σε αυτήν την περίπτωση, το objecttype είναι μια συμβολοσειρά που ταιριάζει με την τιμή που επιστρέφεται από την ενσωματωμένη συνάρτηση TypeName.

## AssertIsNothing

Επιστρέφει True όταν το A είναι ένα αντικείμενο που έχει την τιμή Nothing.

### Σύνταξη:

svc.AssertIsNothing(a: any, message: str = ""): bool

## AssertIsNull

Επιστρέφει True όταν το A έχει την τιμή Null.

### Σύνταξη:

svc.AssertIsNull(a: any, message: str = ""): bool

## AssertLess

Επιστρέφει True όταν το A είναι μικρότερο από το B.

### Σύνταξη:

svc.AssertLess(a: any, b: any, message: str = ""): bool

Η σύγκριση μεταξύ Α και Β προϋποθέτει τα εξής:

- Οι κατάλληλοι τύποι δεδομένων είναι String, Date ή αριθμητικοί.

- Και οι δύο εκφράσεις πρέπει να έχουν τον ίδιο VarType, ή και οι δύο πρέπει να είναι αριθμητικές.

- Οι συγκρίσεις συμβολοσειρών έχουν διάκριση πεζών-κεφαλαίων.

## AssertLessEqual

Επιστρέφει True όταν το A είναι μικρότερο ή ίσο του B.

### Σύνταξη:

svc.AssertLessEqual(a: any, b: any, message: str = ""): bool

Η σύγκριση μεταξύ Α και Β προϋποθέτει τα εξής:

- Οι κατάλληλοι τύποι δεδομένων είναι String, Date, ή αριθμητικοί.

- Και οι δύο εκφράσεις πρέπει να έχουν τον ίδιο VarType, ή και οι δύο πρέπει να είναι αριθμητικές.

- Οι συγκρίσεις συμβολοσειρών έχουν διάκριση πεζών-κεφαλαίων.

## AssertLike

Επιστρέφει True, εάν η συμβολοσειρά Α αντιστοιχεί σε ένα δεδομένο μοτίβο που περιέχει χαρακτήρες υποκατάστασης.

### Σύνταξη:

svc.AssertLike(a: any, pattern: str = "", message: str = ""): bool

Οι παρακάτω χαρακτήρες υποκατάστασης γίνονται δεκτοί:

- ? - Αντιπροσωπεύει οποιονδήποτε μεμονωμένο χαρακτήρα.

- * - Αντιπροσωπεύει μηδέν, έναν ή πολλούς χαρακτήρες.

## AssertNotAlmostEqual

Επιστρέφει True όταν το A και το B είναι αριθμητικές τιμές και δεν θεωρούνται ότι βρίσκονται κοντά η μια στην άλλη, δεδομένης μιας σχετικής ανοχής.

### Σύνταξη:

svc.AssertNotAlmostEqual(a: any, b: any, tolerance: double = 1E-09, message: str = ""): bool

Αυτός ο ισχυρισμός επιστρέφει True εάν πληρούνται οι δύο παρακάτω προϋποθέσεις:

- Τα Α και Β μπορούν να μετατραπούν στον τύπο Double.

- Η απόλυτη διαφορά μεταξύ Α και Β διαιρούμενη με τη μεγαλύτερη απόλυτη τιμή του Α ή του Β είναι μεγαλύτερη από την τιμή που καθορίζεται στην tolerance.

## AssertNotEqual

Επιστρέφει True, όταν τα A και B δεν θεωρούνται ίσα.

### Σύνταξη:

svc.AssertNotEqual(a: any, b: any, message: str = ""): bool

Αυτή η μέθοδος λειτουργεί τόσο για βαθμωτές όσο και για πίνακες. Διαβάστε τις οδηγίες στο AssertEqual για περισσότερες πληροφορίες σχετικά με το τι σημαίνει ισότητα σε αυτόν τον ισχυρισμό.

## AssertNotIn

Επιστρέφει True, όταν το A (μια συμβολοσειρά) δεν βρίσκεται στο B.

### Σύνταξη:

svc.AssertNotIn(a: any, b: any, message: str = ""): bool

Διαβάστε τις οδηγίες στο AssertIn για περισσότερες πληροφορίες σχετικά με τις υποθέσεις αυτής της μεθόδου.

## AssertNotInstance

Επιστρέφει True, όταν το A δεν είναι μια παρουσία ενός συγκεκριμένου τύπου αντικειμένου.

### Σύνταξη:

svc.AssertNotInstance(a: any, objecttype: str, message: str = ""): bool

Διαβάστε τις οδηγίες στο AssertIsInstance για περισσότερες πληροφορίες σχετικά με τις υποθέσεις αυτής της μεθόδου.

## AssertNotLike

Επιστρέφει True, εάν η συμβολοσειρά A δεν ταιριάζει με ένα δεδομένο μοτίβο που περιέχει χαρακτήρες υποκατάστασης.

### Σύνταξη:

svc.AssertNotLike(a: any, pattern: str = "", message: str = ""): bool

Διαβάστε τις οδηγίες στο AssertLike για περισσότερες πληροφορίες σχετικά με τις υποθέσεις αυτής της μεθόδου.

## AssertNotNothing

Επιστρέφει True εκτός από την περίπτωση που το A είναι ένα αντικείμενο που έχει την τιμή Nothing.

### Σύνταξη:

svc.AssertNotNothing(a: any, message: str = ""): bool

## AssertNotNull

Επιστρέφει True, εκτός εάν το A έχει την τιμή Null.

### Σύνταξη:

svc.AssertNotNull(a: any, message: str = ""): bool

## AssertNotRegex

Επιστρέφει True, όταν το A δεν είναι συμβολοσειρά ή δεν ταιριάζει με τη δεδομένη κανονική έκφραση.

### Σύνταξη:

svc.AssertNotRegex(a: any, regex: str = "", message: str = ""): bool

Η σύγκριση γίνεται με διάκριση πεζών-κεφαλαίων.

## AssertRegex

Επιστρέφει True, όταν η συμβολοσειρά Α ταιριάζει με τη δεδομένη κανονική έκφραση.

### Σύνταξη:

svc.AssertRegex(a: any, regex: str = "", message: str = ""): bool

Η σύγκριση γίνεται με διάκριση πεζών-κεφαλαίων.

## AssertTrue

Επιστρέφει True, όταν η έκφραση A είναι Boolean και η τιμή της είναι True.

### Σύνταξη:

svc.AssertTrue(a: any, message: str = ""): bool

## Fail

Αναγκάζει μια δοκιμαστική περίπτωση να αποτύχει.

### Σύνταξη:

svc.Fail(message: str = "")

Μπορεί να παρασχεθεί ένα μήνυμα για αναφορά στην κονσόλα.

## Log

Γράφει το καθορισμένο message στην κονσόλα.

### Σύνταξη:

svc.Log(message: str = "")

Μπορεί να παρασχεθεί ένα μήνυμα για αναφορά στην κονσόλα.

## ReportError

Εμφανίζει ένα πλαίσιο μηνύματος με ένα μήνυμα και τις τρέχουσες τιμές ιδιοτήτων της υπηρεσίας Exception.

Αυτή η μέθοδος χρησιμοποιείται συνήθως στην ενότητα χειρισμού εξαιρέσεων του Sub που περιέχει τη δοκιμαστική περίπτωση, η οποία επιτυγχάνεται όταν ένας ισχυρισμός αποτυγχάνει ή όταν καλείται η μέθοδος Fail.

### Σύνταξη:

svc.ReportError(message: str = "")

Ανάλογα με την τιμή της ιδιότητας WhenAssertionFails, η εκτέλεση της δοκιμής μπορεί να συνεχιστεί ή να διακοπεί.

Όταν γράφετε δοκιμαστικές περιπτώσεις, συνιστάται να συμπεριλάβετε μια κλήση στη μέθοδο ReportError στην ενότητα χειρισμού εξαιρέσεων του Sub.

Εάν η ιδιότητα LongMessage ισούται με True, το καθορισμένο message ακολουθείται από την τυπική περιγραφή του μηνύματος σφάλματος. Διαφορετικά εμφανίζεται μόνο το message.

## RunTest

Εκτελεί την πλήρη σειρά δοκιμών που υλοποιείται στην καθορισμένη ενότητα. Κάθε δοκιμαστική περίπτωση εκτελείται ανεξάρτητα το ένα από το άλλο.

Η εκτέλεση μιας δοκιμαστικής σειράς αποτελείται από:

1. Εκτέλεση της προαιρετικής μεθόδου Setup που υπάρχει στη λειτουργική μονάδα.

2. Εκτέλεση μία φορά κάθε δοκιμαστική περίπτωση, χωρίς συγκεκριμένη σειρά.

3. Εκτέλεση της προαιρετικής μεθόδου TearDown που υπάρχει στη λειτουργική μονάδα.

### Σύνταξη:

svc.RunTest(testsuite: str, testcasepattern: str = "", message: str = ""): int

Το όρισμα testcasepattern καθορίζει ένα μοτίβο που αποτελείται από "?" και χαρακτήρες υποκατάστασης "*" για να επιλέξετε ποιες δοκιμαστικές περιπτώσεις θα εκτελεστούν. Η σύγκριση δεν κάνει διάκριση πεζών-κεφαλαίων.

Εάν παρέχεται ένα message, γράφεται στην κονσόλα όταν ξεκινά η δοκιμή.

## SkipTest

Διακόπτει την τρέχουσα δοκιμαστική σειρά χωρίς να καλεί τη μέθοδο TearDown.

Η παράλειψη μιας δοκιμής έχει συνήθως νόημα κατά τη μέθοδο Setup, όταν δεν πληρούνται όλες οι προϋποθέσεις για την εκτέλεση της δοκιμής.

Εναπόκειται στη μέθοδο Setup να βγείτε από το Sub λίγο μετά την κλήση SkipTest.

Εάν το SkipTest καλείται μέσα από μια δοκιμαστική περίπτωση, η εκτέλεση της σειράς δοκιμών διακόπτεται και οι υπόλοιπες περιπτώσεις δοκιμής δεν εκτελούνται. Λάβετε υπόψη ότι η σειρά με την οποία εκτελούνται οι περιπτώσεις δοκιμών είναι αυθαίρετη σε μια ομάδα δοκιμών.

### Σύνταξη:

svc.SkipTest(message: str = "")

Εάν παρέχεται ένα message, γράφεται στην κονσόλα.

Σχετικά θέματα

Υπηρεσία ScriptForge.Exception