Прохождение теста rspec - PullRequest
       3

Прохождение теста rspec

0 голосов
/ 05 марта 2019

Эй, я строю игру тральщика в качестве своего проекта, и у меня проблема с прохождением этого теста.

  it "should initialise each position in each column in matrix as _" do
            matrix = []
            matrix[0] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[1] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[2] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[3] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[4] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[5] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[6] = ["_", "_", "_", "_", "_", "_","_"]
            @game.clearcolumns
            @game.matrix.should eql matrix
        end

Это мой простой метод:

def clearcolumns
        def matrix
            matrix = []
            matrix[0] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[1] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[2] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[3] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[4] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[5] = ["_", "_", "_", "_", "_", "_","_"]
            matrix[6] = ["_", "_", "_", "_", "_", "_","_"]
        end
    end

По какой-то причине я получаю эту ошибку:

Failure/Error: @game.matrix.should eql matrix

       expected: [["_", "_", "_", "_", "_", "_", "_"], ["_", "_", "_", "_", "_", "_", "_"], ["_", "_", "_", "_", "_", ... "_", "_", "_", "_", "_"], ["_", "_", "_", "_", "_", "_", "_"], ["_", "_", "_", "_", "_", "_", "_"]]
            got: ["_", "_", "_", "_", "_", "_", "_"]

1 Ответ

3 голосов
/ 05 марта 2019

Методы в ruby ​​(без явного оператора return) вернут результат последней строки кода, которая была выполнена.В вашем случае ваша последняя строка matrix равна matrix[6] = ["_", "_", "_", "_", "_", "_","_"], поэтому метод всегда будет возвращать ["_", "_", "_", "_", "_", "_","_"].Если вы хотите вернуть полную матрицу, вы можете сделать это вместо:

def matrix
  # Initialize the matrix variable
  matrix = []

  # Explicitly set each row of the matrix
  matrix[0] = ["_", "_", "_", "_", "_", "_","_"]
  matrix[1] = ["_", "_", "_", "_", "_", "_","_"]
  matrix[2] = ["_", "_", "_", "_", "_", "_","_"]
  matrix[3] = ["_", "_", "_", "_", "_", "_","_"]
  matrix[4] = ["_", "_", "_", "_", "_", "_","_"]
  matrix[5] = ["_", "_", "_", "_", "_", "_","_"]
  matrix[6] = ["_", "_", "_", "_", "_", "_","_"]

  # Return the matrix
  matrix
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...