Ruby块将作用域更改为特定变量
我是ruby的新手,但我觉得这段代码可以改进Ruby块将作用域更改为特定变量,ruby,Ruby,我是ruby的新手,但我觉得这段代码可以改进 class LoginPage < BasePage def initialize(session) @session = session end def login(params) @session.within '#login-form' do @session.fill_in 'Login', with: params[:logi
class LoginPage < BasePage
def initialize(session)
@session = session
end
def login(params)
@session.within '#login-form' do
@session.fill_in 'Login', with: params[:login]
@session.fill_in 'Password',with: params[:password]
end
@session.click_button 'Login'
end
end
但是这个代码不起作用。您知道如何更改这些方法调用的范围以使它们调用特定的实例变量吗。您可以使用
instance\u eval
执行此操作
@session.instance_eval do
within '#login-form' do
fill_in 'Login', with: params[:login]
fill_in 'Password', with params[:password]
end
click_buttton 'Login'
end
然而,我认为这会使您的代码读起来很混乱,因为在扫描代码时,很容易错过实例评估
@session.instance_eval do
within '#login-form' do
fill_in 'Login', with: params[:login]
fill_in 'Password', with params[:password]
end
click_buttton 'Login'
end