0

メソッドが実行される前に、オブジェクト自体を再初期化することはできますか? 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 

これは良い考えですか、それとも悪い考えですか? または、これを行うより良い方法はありますか?

4

2 に答える 2

0

オブジェクトに含まれるデータはいつでも変更できます。つまり、すべてのinit-logicを追加のメソッドに入れて、カスタムメソッドから呼び出すことができます。

一般的に、あなたがやろうとしていることは良い考えのようには聞こえません...

于 2012-08-30T18:47:02.737 に答える
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.new、、、Time.gm_ Time.local_

于 2012-08-30T20:37:39.997 に答える