Я пытаюсь найти способ проверить несколько вопросов выбора. Структура состоит в том, что урок состоит из 8 этапов, и каждый этап содержит вопросы с несколькими вариантами ответов только с одним правильным ответом. Каждый раз загрузка вопросов случайна, поэтому я искал лучший способ проверить, правильно ли нажат правильный ответ. По этой причине я создал таблицу данных с двумя столбцами, которые, очевидно, более обширны, чем это, но вдоль этих линий:Определения шагов для таблиц данных огурца для правильного ответа
| what is the opposite of true | false |
| what comes after tuesday | wednesday |
В тесте особенности я написал, что он тестирует правильный матч ответа. Позже я тогда надеялся найти способ проверить, что если совпадение вопросов и ответов не было в таблице данных, это неверно. Кто-нибудь сможет объяснить, как я буду делать определения теста для этого?
Я попытался использовать метод rows_hash, но я получаю следующее сообщение об ошибке
undefined method `rows_hash' for -3634850196505698949:Fixnum (NoMethodError)
Given(/^a list of answer\-value pairs$/) do |table|
@question_answer_table = hash
end
When(/^I choose a match$/) do
hash = @question_answer_table
@question_answer_table.rows_hash
return false if hash[question].nil?
return hash[question] == answer
end
Это потрясающе спасибо! глядя на аргумент, я должен задать вопрос и ответить в таблице? И где же в нее входит cucumber_table? – Lilp
Параметр cucumber_table - это таблица данных. Итак, определите шаг, например: «Учитывая список пар ответов-значений», за которыми следует таблица данных. Установите переменную экземпляра (например, @question_answer_table), а затем на других шагах вы можете вызвать этот метод с вашей переменной экземпляра в качестве первого параметра. Вам не нужно указывать заголовок вопроса и ответа в таблице. –
По какой-то причине я получаю неопределенный метод хэша строк, вы можете предложить какие-либо предложения? Я отредактировал вышеупомянутый вопрос, включив код – Lilp