Ruby 对象是否可以在执行方法之前重新初始化自身?
我可以让对象在执行方法之前重新初始化自身吗?我正在使用Ruby和selenium测试一个web应用程序,并试图改进我的页面对象。比如说Ruby 对象是否可以在执行方法之前重新初始化自身?,ruby,automated-tests,pageobjects,Ruby,Automated Tests,Pageobjects,我可以让对象在执行方法之前重新初始化自身吗?我正在使用Ruby和selenium测试一个web应用程序,并试图改进我的页面对象。比如说 class Foo def initialize #stuff happens here end def NewMethod self.initialize #What happens here is what I really want to happen end end 这是个好主意还是个坏主意?或者有
class Foo
def initialize
#stuff happens here
end
def NewMethod
self.initialize
#What happens here is what I really want to happen
end
end
这是个好主意还是个坏主意?或者有更好的方法吗?始终可以更改对象中包含的数据。您可以将所有的init逻辑放入一个附加的方法中,然后从您的自定义方法调用该方法
一般来说,您试图做的事情听起来并不是一个好主意。提前说明:方法是用小写字母编写的。请将
NewMethod
替换为NewMethod
如果您尝试Foo.newmethod
,则会出现错误
你想做什么?是否要定义创建对象的不同可能性
你能做的是:
class Foo
def initialize
end
def self.newmethod
me = self.new
#Some actions ...
me #Return the (modified?) object
end
end
p Foo.newmethod #->#<Foo:0xb77d58>
class-Foo
def初始化
结束
def self.newmethod
自我更新
#一些行动。。。
me#返回(修改的?)对象
结束
结束
p Foo.newmethod#->#
Time
正在使用类似的东西。有Time.new
,Time.gm
,Time.local
…请通过提供更多细节来改进您的问题,这里不清楚要问什么。我正试图计划如何让我的页面对象负责页面上的内容,而不是检查测试用例中的内容。我在这里试图解决的是一种策略,用于创建导航栏的页面对象。我想我现在倾向于让所有页面对象上都有导航条继承自导航条类。