Δοκιμές στο track Ruby

Μάθε πώς να δοκιμάζεις τις ασκήσεις σου στη Ruby στο Exercism


Εκτέλεση δοκιμών

Εκτέλεσε τις δοκιμές με:

$ ruby hamming_test.rb

Θα εκτελεστεί μόνο η πρώτη δοκιμή, ενώ όλες οι υπόλοιπες έχουν τεθεί σε εκκρεμότητα με τη μέθοδο skip. Διάγραψε ή σχολίασε το επόμενο skip καθώς περνάς κάθε δοκιμή.

Κατανοώντας τις παραλείψεις

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

Η σύνοψη της εκτέλεσης των δοκιμών θα εμφανίζει τον αριθμό των δοκιμών που παραλείφθηκαν. Καλό είναι να απενεργοποιήσεις όλες τις παραλείψεις πριν ολοκληρώσεις μια άσκηση.

Προσαρμογή της αναφοράς δοκιμών

Αν θέλεις χρώμα, εκτέλεσε τις δοκιμές με:

$ ruby hamming_test.rb -p

Αν θέλεις να βλέπεις τα ονόματα των δοκιμών, εκτέλεσε τις δοκιμές με:

$ ruby hamming_tests.rb -v

Αν θέλεις να εκτελέσεις μόνο μία δοκιμή, μπορείς να ορίσεις μία ή μια ομάδα με αντιστοίχιση τύπου κανονικής έκφρασης.

$ ruby hamming_tests.rb -n /empty/

Μπορείς επίσης να συνδυάσεις τις επιλογές.

Απενεργοποίηση όλων των παραλείψεων

Με τη νέα σου ικανότητα να επιλέγεις τις μεμονωμένες δοκιμές ή τις ομάδες δοκιμών που θέλεις να εκτελέσεις, ίσως θελήσεις να απενεργοποιήσεις όλες τις παραλείψεις.

Ο γρήγορος και πρόχειρος τρόπος

Εκμεταλλευόμενος το γεγονός ότι στη Ruby οι μέθοδοι μπορούν να υπερκαλυφθούν, αν προσθέσεις αυτή τη γραμμή κώδικα:

def skip ; end

κάπως έτσι, στο αρχείο δοκιμών του Hamming

class HammingTest < Minitest::Test
  def skip ; end
  def test_identical_strands

τότε όλες οι παραλείψεις θα εξακολουθούν να αξιολογούνται, αλλά θα αφήνουν τις δοκιμές σου να εκτελεστούν.

Ο εξίσου γρήγορος αλλά πιο καθαρός τρόπος

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

Δημιουργήσαμε έναν φάκελο lib για να κρατάμε τα δικά μας "βοηθητικά" πράγματα, και μοιάζει κάπως έτσι:

require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
#     ruby -I../lib -rdisable_skip <filename_test.rb>

module Minitest
  class Test
    def skip(_msg='', _bt=caller)
    end
  end
end

Η περιγραφή για το πώς να το χρησιμοποιήσεις υπάρχει σχολιασμένη σε αυτή την παράθεση του αρχείου, και η παράθεση του αρχείου είναι στην πλήρη της μορφή.