RSpec è il framework di test più amato in Ruby. La sua forza è la leggibilità: un test si legge quasi come una frase in inglese.

RSpec.describe Launch do
  describe "#successful?" do
    it "e' true quando lo status e' success" do
      launch = Launch.new(status: "success")
      expect(launch.successful?).to be true
    end

    it "e' false altrimenti" do
      expect(Launch.new(status: "failure").successful?).to be false
    end
  end
end

describe raggruppa, it descrive un comportamento, expect(...).to ... fa l'asserzione. Lanci rspec e hai la conferma (o la smentita) che il codice fa ciò che dici.

Il valore vero non è "trovare bug": è progettare meglio. Se un metodo è difficile da testare, di solito è mal disegnato. Scrivere il test prima ti costringe a pensare all'interfaccia. E quando rifattorizzi, i test ti dicono se hai rotto qualcosa.