Dark_Sage Δημοσ. 11 Σεπτεμβρίου 2013 Δημοσ. 11 Σεπτεμβρίου 2013 Γεια σε όλους,εχω γράψει το γελοίο παρακάτω 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τι κάνω λάθος?εχω σπάσει το κεφάλι μουευχαριστω!
nucleus Δημοσ. 11 Σεπτεμβρίου 2013 Δημοσ. 11 Σεπτεμβρίου 2013 (επεξεργασμένο) Για δοκίμασε έτσι 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() Επεξ/σία 11 Σεπτεμβρίου 2013 από nucleus
pmav99 Δημοσ. 11 Σεπτεμβρίου 2013 Δημοσ. 11 Σεπτεμβρίου 2013 Πήγαινε στο βιβλίο - tutorial που χρησιμοποιείς και διάβασε για Name Scoping / Scopes κτλ. Επίσης, μιας και είσαι αρχάριος, ψάξε να βρεις τι είναι το PEP8, διάβασέ το και ξεκίνα να χρησιμοποιείς τις συμβάσεις του. Πρακτικά όλοι όσοι γράφουν python το χρησιμοποιουν.
warchief Δημοσ. 13 Σεπτεμβρίου 2013 Δημοσ. 13 Σεπτεμβρίου 2013 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: εσυ πήρες την μέθοδο και την έκανες συνάρτηση
Ilias95 Δημοσ. 13 Σεπτεμβρίου 2013 Δημοσ. 13 Σεπτεμβρίου 2013 @Nucleus: εσυ πήρες την μέθοδο και την έκανες συνάρτηση Το οποίο είναι μάλλον και πιο σωστό μιας και δεν σχετίζεται με την συγκεκριμένη κλάση.
nucleus Δημοσ. 14 Σεπτεμβρίου 2013 Δημοσ. 14 Σεπτεμβρίου 2013 Είναι testcase το μόνο που πρέπει να περιέχει είναι "tests" όχι "βοηθητικές μεθόδους". Aν το test αφορά την addOne δεν θα έπρεπε να το κάνει με Mock και όχι με TestCase?
b_real Δημοσ. 21 Σεπτεμβρίου 2013 Δημοσ. 21 Σεπτεμβρίου 2013 Είναι testcase το μόνο που πρέπει να περιέχει είναι "tests" όχι "βοηθητικές μεθόδους". Aν το test αφορά την addOne δεν θα έπρεπε να το κάνει με Mock και όχι με TestCase? Mock συνηθως χρησιμοποιουν οπου υπαρχουν call σε εξωτερικα services κλπ. πχ. αν addOne εκανε url fetch, δεν θες αυτό να το κάνει κ οταν τρεχουν τα test
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα