Πίνακας περιεχομένων:

Μπορείτε να δοκιμάσετε στατικές μεθόδους μονάδας;
Μπορείτε να δοκιμάσετε στατικές μεθόδους μονάδας;

Βίντεο: Μπορείτε να δοκιμάσετε στατικές μεθόδους μονάδας;

Βίντεο: Μπορείτε να δοκιμάσετε στατικές μεθόδους μονάδας;
Βίντεο: Πώς να γράψετε πτυχές με το Spring AOP [Ταξίδι Spring AOP - Μέρος 1] 2024, Ενδέχεται
Anonim

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

Λαμβάνοντας υπόψη αυτό, πώς δοκιμάζετε στατικές μεθόδους;

Υπάρχουν τέσσερα εύκολα βήματα για τη ρύθμιση μιας δοκιμής που κοροϊδεύει μια στατική κλήση:

  1. Χρησιμοποιήστε το PowerMock JUnit runner: @RunWith(PowerMockRunner.
  2. Δηλώστε τη δοκιμαστική τάξη που κοροϊδεύουμε:
  3. Πείτε στο PowerMock το όνομα της κλάσης που περιέχει στατικές μεθόδους:
  4. Ρυθμίστε τις προσδοκίες, λέγοντας στο PowerMock να περιμένει μια κλήση σε μια στατική μέθοδο:

Ομοίως, μπορούμε να κοροϊδεύουμε τις στατικές μεθόδους C#; 4 Απαντήσεις. Moq (και άλλα που βασίζονται σε DynamicProxy διακωμώδηση πλαίσια) δεν μπορούν κοροϊδεύω οτιδήποτε δεν είναι εικονικό ή αφηρημένο μέθοδος . Εναλλακτικά, θα μπορούσες αναδιαμορφώστε το σχέδιό σας σε αφηρημένες κλήσεις στατικές μέθοδοι , και παρέχετε αυτήν την αφαίρεση στην τάξη σας μέσω της ένεσης εξάρτησης.

Σε σχέση με αυτό, πώς δοκιμάζετε τις ιδιωτικές μεθόδους μονάδας;

Δοκιμή μονάδας μόνο το δημόσια διαθέσιμο API. Όταν γράφετε δοκιμές μονάδας , μιμούνται τη συμπεριφορά των πελατών του SUT. Μην το κάνετε δοκιμή ιδιωτικών μεθόδων . Είτε δοκιμή μονάδας τα έμμεσα, χρησιμοποιώντας το δημόσιο API, ή να τα εξαγάγετε σε ξεχωριστές κλάσεις και δοκιμή αντί γι' αυτές τις τάξεις.

Τι είναι η στατική μέθοδος;

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

Συνιστάται: