"print" class 与 rspec 的测试能力 - "Print" 调用在我的程序中有效,但在 rspec 中 returns 无

Testing ability to "print" a class with rspec - "Print" call works in my program, but in rspec it returns nil

这是一个简单的问题,但我不确定出了什么问题。我在我的 class 中实现了一个 "to_s" 方法来打印它的“@status”。当我初始化一个实例并在脚本文件中打印它时,它就可以工作了。但是当我尝试用 rspec 做同样的事情时,它失败了并说它返回了 "nil." 我知道 rspec 设置正确,因为我得到了这个 class 的其他测试通过。

这是 class (cell.rb):

class Cell
  def initialize(status=' ')
    @status = status
  end

  def to_s
    "#{@status}"
  end
end
cell = Cell.new
print cell

和测试(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

print方法总是returnsnil

您希望您的 rspec 像:

it 'prints its status' do
  expect(@cell.to_s).to eq(@cell.status)
end

您不是要测试打印功能,而是要测试您的 to_s