2014-11-20 2 views
0

Этот тест проверяет, действительно ли плата tic-tac-toe, созданная методом generate_game, имеет три подмассива по три значения каждый. Но могу ли я выразить это в одной строке, например, я пытался сделать это в комментариях?использование синтаксиса «не волнует» в rspec?

it "should have three rows of three squares each" do 
    # expect([[_,_,_], [_,_,_], [_,_,_]] === generate_game).to_be true 
     game = generate_game 
     expect(game.length).to eq(3) 
     0.upto(2) do |num| 
     expect(game[num].length).to eq(3) 
     end 
    end 
+0

Я не уверен, что ваш вопрос. Вы хотите убедиться, что возвращаемое значение из 'generate_game' является' Array', и что вам все равно, что содержится в каждом под-массиве? –

+0

Да, я надеялся превратить код, который вы видите выше, в однострочный. Замеченная версия - всего лишь попытка. Оглядываясь назад, я вижу, что это должно быть отменено, я позабочусь об этом прямо сейчас. – pgblu

ответ

0

Вы должны будете использовать RSpec type matchers.

Это будет работать для вашего примера:

expect(generate_game).to be_a_kind_of Array

+0

Спасибо, @ Kenrick Chien. Но как конкретно я нуждаюсь в вложенном массиве, 3 значения по 3 подзадачи? – pgblu

+0

Я не думаю, что есть встроенный метод для этого. Тем не менее, вы можете создать настраиваемый сопоставление RSpec. –