我正在使用 PageObject 自动化黄瓜验收测试,并且我目前正在将导航方法重构为模块。我很快就要离开这个项目,而要维护代码的开发人员对拥有辅助方法页面并不满意,并且希望它们在自己的命名空间中。
为了研究这个过程,我创建了一个名为 Navigation 的模块并添加了一个 pageobject 调用:
module Navigator
include PageObject::PageFactory
def self.send_auth_to_login(user_type)
visit_page(LoginPage) do |login_page|
login_page.login_as Users::user_factory(user_type)
end
end
end
我这样称呼它:
Navigator.send_auth_to_login 'admin'
这是错误:
undefined method `visit_page' for Navigator:Module (NoMethodError)
我用显式接收器尝试过:
PageObject::PageFactory.login_page.login_as Users::user_factory(user_type)
但它不起作用。我什至试着用类方法把它变成一个类
任何拥有更多 PageObject 知识的人都可以在这里看到我做错了什么吗?它在模块之外工作,而不是在模块内部。
谢谢。