我正在嘗試編寫一個spec來測試顯示一個井字棋板。我正在使用方法capture
,但在運行規範時會引發錯誤。我正在使用捕獲來獲取方法調用的輸出。 https://apidock.com/rails/Kernel/capture 這裏是我的方法:RSpec的未定義方法`capture'
def display_board
puts " #{grid[0]} | #{grid[1]} | #{grid[2]} "
puts "-----------"
puts " #{grid[3]} | #{grid[4]} | #{grid[5]} "
puts "-----------"
puts " #{grid[6]} | #{grid[7]} | #{grid[8]} "
end
這裏是我的Rspec的測試:
context "#display_board" do
output = capture(:stdout) { board.display_board}
rows = output.split("\n")
binding.pry
expect(rows[0]).to eq(" | | ")
expect(rows[1]).to eq("-----------")
expect(rows[2]).to eq(" | | ")
expect(rows[3]).to eq("-----------")
expect(rows[4]).to eq(" | | ")
end
有什麼錯誤,特別是? – struthersneil
'''NoMethodError: 對於RSpec :: ExampleGroups :: Board :: DisplayBoard:Class'''未定義的方法'capture'# –
'#capture'是*用於從ActiveSupport可用的方法,但它看起來像它被棄用和刪除。所以這種方法是行不通的。 – struthersneil