Usa:
x.should eq(42)
Oppure:
x.should be == 42
O spostare x.should == 42
in modo che sia l'ultima riga all'interno del blocco esso.
Per chi pensa MA PERCHÉ?
Sono un noob completo a Ruby, ma qui è la mia comprensione:
L'avvertimento arriva da Ruby come affermazioni come x.should == 42
o 1 == 1
restituisce alcun valore. Se questo valore di ritorno non viene effettivamente utilizzato (ad esempio, assegnato a una variabile, utilizzato come argomento per una funzione o restituito dal blocco), Ruby non vede in modo comprensibile l'utilizzo dell'istruzione in primo luogo e avvisa l'utente.
Per testare questo si può lanciare IRB con la bandiera -w e aggiungere il seguente codice:
> irb -w
def example
1 == 1
:hello
end
Il 1 == 1 dovrebbe emettere un avvertimento circa == inutile nel contesto vuoto. Provalo senza: hello line e non riceverai l'avviso come 1 == 1
verrà quindi utilizzato come dichiarazione di ritorno.
So che l'Op e gli altri qui lo hanno già capito. Tuttavia volevo postare questo per persone come me che potrebbero chiedersi perché l'avvertimento è stato lanciato e perché le soluzioni proposte affrontano questo problema.
Questa dovrebbe essere la risposta accettata per il contesto. – expressions