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

时间:2012-08-30 17:37:32

标签: 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 

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

2 个答案:

答案 0 :(得分:0)

始终可以更改对象中包含的数据。你可以把所有的init-logic放到另一个方法中,然后从你的自定义方法中调用它。

一般来说,你要做的事情听起来不是一个好主意......

答案 1 :(得分:0)

提前评论:方法以小写字母书写。请将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>

Time正在使用这样的东西。有Time.newTime.gmTime.local ...