Questo è un problema semplice ma non sono sicuro di cosa siaandando storto. Ho implementato un metodo "to_s" nella mia classe che stampa il suo "@status". Quando inizializzo un'istanza e la stampo all'interno del file di script, funziona. Ma quando provo a fare la stessa cosa con rspec, non riesce e dice che ha restituito "zero". So che rspec è impostato correttamente perché ho altri test da superare per questa classe.
Ecco la classe (cell.rb):
class Cell
def initialize(status=" ")
@status = status
end
def to_s
"#{@status}"
end
end
cell = Cell.new
print cell
E il test (parti rilevanti di cell_spec.rb):
describe Cell do
before :each do
@cell = Cell.new
end
it "prints its status" do
expect(print @cell).to eq(@cell.status)
end
end
risposte:
0 per risposta № 1Il print
il metodo restituisce sempre nil
.
Vorresti che il tuo rspec fosse come:
it "prints its status" do
expect(@cell.to_s).to eq(@cell.status)
end
Non stai cercando di testare la funzione di stampa, piuttosto stai testando il tuo to_s
.