Использование:
x.should eq(42)
Или:
x.should be == 42
Или переместите x.should == 42
так, чтобы это была последняя строка внутри блока it .
Для тех, кто думает НО ПОЧЕМУ?
Я полный нуб к Руби, но вот мое понимание:
Предупреждение приходит от Ruby, так как операторы типа x.should == 42
или 1 == 1
возвращают значение. Если это возвращаемое значение фактически не используется (например, присвоено переменной, используется в качестве аргумента функции или возвращено из блока), то Ruby по понятным причинам не видит смысла в использовании оператора в первую очередь и предупреждает вас об этом.
Чтобы проверить это, вы можете запустить irb с флагом -w и добавить следующий код:
> irb -w
def example
1 == 1
:hello
end
1 == 1 должен выдавать предупреждение о бесполезном == в пустом контексте. Попробуйте это без строки: hello, и вы не получите предупреждение, так как 1 == 1
будет использоваться в качестве оператора возврата.
Я знаю, что Оп и другие здесь уже поняли это. Однако я хотел опубликовать это для таких людей, как я, которые могут задаться вопросом, почему было выдано предупреждение и почему предложенные решения решили эту проблему.