Ich versuche eine Spezifikation zu schreiben, um die Anzeige eines Tic-Tac-Toe Board zu testen. Ich verwende die Methode capture
, aber es wirft einen Fehler, wenn ich die Spezifikation ausführen. Ich verwende Capture, um die Ausgabe eines Methodenaufrufs zu erhalten. https://apidock.com/rails/Kernel/capture Hier ist meine Methode:undefined Methode `Capture 'für RSpec
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
Hier ist mein Rspec Test:
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
Was der Fehler ist, speziell? – struthersneil
'' 'NoMethodError: undefinierte Methode' Capture 'für RSpec :: ExampleGroups :: Board :: DisplayBoard: Class''' –
'# capture' war eine Methode, die * von ActiveSupport * verwendet wurde, aber es sieht so aus es wurde veraltet und entfernt. Dieser Ansatz wird also nicht funktionieren. – struthersneil