"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
。
这是一个简单的问题,但我不确定出了什么问题。我在我的 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
。