Ruby 对象是否可以在执行方法之前重新初始化自身?

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 这是个好主意还是个坏主意?或者有

我可以让对象在执行方法之前重新初始化自身吗?我正在使用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 

这是个好主意还是个坏主意?或者有更好的方法吗?

始终可以更改对象中包含的数据。您可以将所有的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

请通过提供更多细节来改进您的问题,这里不清楚要问什么。我正试图计划如何让我的页面对象负责页面上的内容,而不是检查测试用例中的内容。我在这里试图解决的是一种策略,用于创建导航栏的页面对象。我想我现在倾向于让所有页面对象上都有导航条继承自导航条类。