Πώς κοροϊδεύεις τη στατική τάξη;
Πώς κοροϊδεύεις τη στατική τάξη;
Anonim

Δημιουργήστε μια διεπαφή για το DriverManager, κοροϊδεύω αυτή τη διεπαφή, εγχύστε την μέσω κάποιου είδους ένεση εξάρτησης και επαληθεύστε σχετικά κοροϊδεύω . Παρατήρηση: Όταν καλείτε στατική μέθοδος μέσα σε ένα στατικός οντότητα, πρέπει να αλλάξετε το τάξη στο @PrepareForTest. τότε, θα πρέπει να προετοιμάσετε το τάξη αυτός ο κώδικας βρίσκεται μέσα.

Από εδώ, μπορούμε να κοροϊδεύουμε τις στατικές μεθόδους;

Το Mockito μας επιτρέπει να δημιουργήσουμε κοροϊδεύω αντικείμενα. Από στατική μέθοδος ανήκει στην κατηγορία, δεν υπάρχει τρόπος στο Mockito να ψευδείς στατικές μεθόδους . Ωστόσο, μπορούμε χρησιμοποιήστε το PowerMock μαζί με το πλαίσιο Mockito για να ψευδείς στατικές μεθόδους.

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

Ομοίως, οι άνθρωποι ρωτούν, μπορούμε να κοροϊδεύουμε τις στατικές μεθόδους χρησιμοποιώντας το MOQ;

Χλευαστικές στατικές μέθοδοι Δωρεάν εργαλεία όπως Moq μπορεί μόνο κοροϊδεύω διεπαφές ή εικονικές/αφηρημένες μεθόδους σε κλάσεις με δημόσιο προεπιλεγμένο κατασκευαστή. Αν εσείς χρειάζεται πραγματικά ψευδείς στατικές μεθόδους , εσείς πρέπει να χρησιμοποιήσετε ένα εμπορικό εργαλείο όπως το Microsoft Fakes (μέρος του Visual Studio Enterprise) ή το Typemock Isolator.

Γιατί οι στατικές μέθοδοι είναι κακές;

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

Συνιστάται: