/ / Testare la capacità di "stampare" una classe con rspec - la chiamata "Print" funziona nel mio programma, ma in rspec restituisce nil - ruby, rspec

Test di capacità di "stampare" una classe con rspec - La chiamata "Stampa" funziona nel mio programma, ma in rspec restituisce nil - ruby, rspec

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 № 1

Il 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.