iCyd Δημοσ. 4 Ιανουαρίου 2016 Δημοσ. 4 Ιανουαρίου 2016 Γεια χαρα. Μπορει να ειναι γελοια η ερωτηση μου αλλα θελω να μαθω Ετοιμαζω ενα project για την σχολη μου (ενα παιχνιδι) και μεσα σε ολα μας ζηταει μαζι με τα παραδοτεα αρχεια να παραδωσουμε και ενα αρχειο JUnit Tests. Αυτο τι ειναι? Εκανα ενα goodle search αλλα δεν βρηκα κατι ετσι ωστε να καταλαβω ακριβως περι τινος προκειται.Γραφω σε NetBeans.
M2000 Δημοσ. 4 Ιανουαρίου 2016 Δημοσ. 4 Ιανουαρίου 2016 Τι δεν καταλαβαίνεις από εδώ; http://www.tutorialspoint.com/junit/junit_test_framework.htm
iCyd Δημοσ. 10 Ιανουαρίου 2016 Μέλος Δημοσ. 10 Ιανουαρίου 2016 Το τι ακριβως πρεπει να κανω εγω πανω στο κωδικα μου.
M2000 Δημοσ. 10 Ιανουαρίου 2016 Δημοσ. 10 Ιανουαρίου 2016 Σημασία έχει τι ζητάει ο κσθηγητής. Προφανώς θα έχει δώσει παράδειγμα...
defacer Δημοσ. 10 Ιανουαρίου 2016 Δημοσ. 10 Ιανουαρίου 2016 Το τι ακριβως πρεπει να κανω εγω πανω στο κωδικα μου. Από κάποια άποψη δε χρειάζεται να κάνεις τίποτα πάνω στον υπάρχοντα κώδικά σου. Απλά χρειάζεται να στήσεις JUnit στον υπολογιστή σου, να βάλεις μέσα στο project σου ένα κατάλληλο αρχέιο configuration και να γράψεις και ένα (αφού αυτό ζητάει) αρχείο με unit tests, τα οποία θα τεστάρουν κάποιο τμήμα του υπάρχοντα κώδικα. Τώρα σε πιο σοβαρό επίπεδο για να κάνεις κάτι ουσιαστικό με τα unit tests χρειάζεται γνώση και εμπειρεία, με την οποία θα μπορέσεις όχι μόνο να καταλάβεις τι unit tests χρειάζεσαι (και τι δεν χρειάζεσαι) αλλά και πώς θα γράφεις testable κώδικα. Αλλά στα πλαίσια της εργασίας όπου είναι 100% εγγυημένο ότι θα παραδοθούν στον καθηγητή εγκλήματα κατά του προγραμματισμού αυτά όλα δεν έχουν σημασία. Απλά θέλει να σας αναγκάσει να κάνετε μια πρώτη επαφή.
παπι Δημοσ. 10 Ιανουαρίου 2016 Δημοσ. 10 Ιανουαρίου 2016 Εγκλήματα λέει χαχαχα. Ts να φανταστώ τώρα δοκιμαζεις πράματα μέσα στη main. Το unit test είναι ένα εργαλείο για να κανείς αυτό το πράμα. Δες στο youtube και θα καταλάβεις.
iCyd Δημοσ. 10 Ιανουαρίου 2016 Μέλος Δημοσ. 10 Ιανουαρίου 2016 Στην ουσια υλοποιησα ενα παιχνιδι για το pc,to stratego. Oχι τρελα γραφικα και τετοια ,και μεσα σε ολα οσα ζηταει (αναφορες,UML,κλπ) μας λεει να παραδωσουμε και ενα αρχειο με JUnit Tests.
defacer Δημοσ. 10 Ιανουαρίου 2016 Δημοσ. 10 Ιανουαρίου 2016 ΟΚ οπότε έχεις ας πούμε κάποιες classes με τα κομμάτια και κάποια class του στυλ board, και κάπου έχεις κώδικα ο οποίος με δεδομένο ένα κομμάτι και το board σου βρίσκει αν κάποια κίνηση είναι θεμιτή σύμφωνα με τους κανόνες ή όχι (κατ' επέκταση, σου λέει ποιό είναι το σύνολο των θεμιτών κινήσεων σε μια συγκεκριμένη θέση). Ένα unit test θα ήταν λοιπόν να πάρεις τον κώδικα "εξακρίβωση θεμιτότητας κομματιού Χ" και να του κάνεις "γυμνάσια" δοκιμάζοντάς τον σε συγκεκριμένα, κατασκευασμένα ειδικά για το σκοπό αυτό, boards. Το unit test θα ελέγχει ότι οι απαντήσεις που παίρνεις από τον κώδικα είναι ακριβώς οι ίδιες με τις "σωστές" απαντήσεις (που εσύ σαν άνθρωπος τις ξέρεις ήδη βάσει του board και των κανόνων, και τις κάνεις hardcode στο πρόγραμμα). Να σου δώσω ένα παράδειγμα σε μια υποθετική γλώσσα προγραμματισμού το οποίο κάνει unit testing για τις κινήσεις ενός πύργου στο σκάκι. void RookAlwaysHas14ValidMovesInOpenBoard() { // setup var rook = new Rook(PieceColor.White); var board = new Board(); board.PlacePiece(rook, Board.SquareA1); var game = new Game(board); // test var validMoves = game.ValidMovesFor(rook); if (validMoves.Count() != 14) { throw new Exception("blah blah"); } } Αυτό για να πιάσεις το νόημα του τι ζητείται. Όταν αυτός ο κώδικας τρέξει, θα επαληθεύσει ότι η λογική που έχεις για τον υπολογισμό των κινήσεων του πύργου είναι τουλάχιστον εν μέρει σωστή. Στην πράξη τώρα το unit testing είναι πολύ πιο συγκεκριμένο: Πρώτα απ' όλα, αυτό που κάνω εδώ δεν είναι καν unit test επειδή δεν επαληθεύει ότι το "system under test" (SUT) λειτουργεί σωστά. Το μόνο που επαληθεύει είναι ότι ο συνδυασμός των Rook, Board και Game λειτουργεί σωστά. Αυτό το κάνει integration test, όχι unit test. Ο κώδικας θα πρέπει να βρίσκεται σε μια class η οποία κάνει extend κάποια "base test class" η οποία εν τέλει έρχεται έτοιμη με το JUnit στην περίπτωσή σου. Ο τρόπος με τον οποίο ελέγχω το αποτέλεσμα δεν πρέπει να είναι manually αλλά χρησιμοποιώντας έτοιμα πράγματα που πάλι έρχονται με το JUnit (θα έχεις methods inherited από τη base test class που μπορείς και επιβάλλεται να χρησιμοποιήσεις). Και πολλά πράγματα ακόμα τα οποία δεν έχει νόημα να συζητήσουμε τώρα. Βοήθησα; 1
iCyd Δημοσ. 11 Ιανουαρίου 2016 Μέλος Δημοσ. 11 Ιανουαρίου 2016 Ευχαριστω παρα πολυ για το χρονο σου. Ησουν αναλυτικοτατος
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα