1

これがばかげた質問だとすみません、私はあざけるのは初めてです。

私はモカを使って次のようなことをすることができます:

person.expects(:first_name).returns('David')

ネストされたオブジェクトをモックするにはどうすればよいですか?

ある人物に属する製品があり、その人物の名を取得したいとします。

私のアプリでは、次のようにすることができます。

product.person.first_name

モックを使用して同じ結果を得るにはどうすればよいですか?

4

2 に答える 2

2

前にmock()を定義し、製品でpersonを呼び出すときに返す必要があります


person = mock(:first_name => 'david')
product.expects(:person).return(person)

product.person #=> mockObject
product.person.first_name #=> david
于 2010-03-04T11:41:21.747 に答える
1

shingaraの答えの代わりに、any_instance「クラスの任意のインスタンスへの呼び出しを検出する」mochaのメソッドを使用できます。

Person.any_instance.expects(:first_name).returns('david')

文書化されています:http:
//mocha.rubyforge.org/classes/Mocha/ClassMethods.html#M000001

于 2010-03-04T20:20:57.387 に答える