Проблема, с которой я сталкиваюсь, заключается в том, что методы капибары, такие как fill_in , вызывают методы, которые имеют то же имя, что и переменные для селекторов.
У меня есть файл yaml, который содержит имена переменных и селекторы, которые они представляют.
selectors.yml -
general_information:
first_name: 'first-name'
last_name: 'last-name'
Моя спецификация открывает файл yaml и создаетпеременные, использующие иерархию yaml с помощью resursive-open-struct.
describe 'this is my spec'
p = RecursiveOpenStruct.new(YAML.load(File.read('spec/support/selectors.yml')))
describe "Enter Info Page" do
it "checks for first name field", :smoke do
goto_page_info p.urls.enter_info
expect(find p.general_information.first_name).to be
end
end
Проблема, с которой я сталкиваюсь, заключается в том, что в некоторых моих тестах есть селекторы, которые имеют имя, совпадающее с методами в других файлах.Капибара будет вызывать методы вместо того, чтобы пытаться найти элемент.
Пример ошибки:
fill_in p.general_information.first_name выдаст ошибку, в которой указано «неправильное количество аргументов (учитывая 0 ожидаемых 1). Это происходит потому, что он пытается вызвать метод вдругой файл с именем «first_name».
Как избежать этой проблемы коллизии имен?