Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σε όλους,

εχω γράψει το γελοίο παρακάτω unit test σε Python

import unittest

class Test(unittest.TestCase):

    def addOne(x):
        return x+1;

    def test_numbers(self):
        self.assertEqual( addOne(11), 12)

if __name__ == '__main__':
    unittest.main()

Μου βγάζει

self.assertEqual( addOne(11), 12)
NameError: global name 'addOne' is not defined

τι κάνω λάθος?

εχω σπάσει το κεφάλι μου

ευχαριστω!

Δημοσ. (επεξεργασμένο)

Για δοκίμασε έτσι

import unittest

def addOne(x):
        return x+1;

class Test(unittest.TestCase):

    def test_numbers(self):
        self.assertEqual( addOne(11), 12)

if __name__ == '__main__':
    unittest.main()
Επεξ/σία από nucleus
Δημοσ.

Πήγαινε στο βιβλίο - tutorial που χρησιμοποιείς και διάβασε για Name Scoping / Scopes κτλ. Επίσης, μιας και είσαι αρχάριος, ψάξε να βρεις τι είναι το PEP8, διάβασέ το και ξεκίνα να χρησιμοποιείς τις συμβάσεις του. Πρακτικά όλοι όσοι γράφουν python το χρησιμοποιουν.

Δημοσ.

class Test(unittest.TestCase):
    def addOne(self, x):
        return x+1;
    
    def test_numbers(self):
        self.assertEqual(self.addOne(11), 12)

Κάθε μέθοδος στην Python πρεπει να εχει πρωτο ορισμα το instance του αντικειμένου πάνω στο οποίο θα καλεσθεί, το convention ειναι το ορισμα αυτο να εχει το όνομα self

 

@Nucleus: εσυ πήρες την μέθοδο και την έκανες συνάρτηση :-)

 

Δημοσ.

@Nucleus: εσυ πήρες την μέθοδο και την έκανες συνάρτηση :-)

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

Δημοσ.

Είναι testcase το μόνο που πρέπει να περιέχει είναι "tests" όχι "βοηθητικές μεθόδους".

 

Aν το test αφορά την addOne δεν θα έπρεπε να το κάνει με Mock και όχι με TestCase?

Δημοσ.

Είναι testcase το μόνο που πρέπει να περιέχει είναι "tests" όχι "βοηθητικές μεθόδους".

 

Aν το test αφορά την addOne δεν θα έπρεπε να το κάνει με Mock και όχι με TestCase?

Mock συνηθως χρησιμοποιουν οπου υπαρχουν call σε εξωτερικα services κλπ.

πχ. αν addOne εκανε url fetch, δεν θες αυτό να το κάνει κ οταν τρεχουν τα test

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...