On 02/01/07, <b class="gmail_sendername">Jay</b> <<a href="mailto:jay@jayfields.com">jay@jayfields.com</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On my current project I needed to create a stub that responded<br>correctly to the id message. Here's the change I put into my copy of<br>head.<br><br>Index: lib/mocha/mock_methods.rb<br>===================================================================
<br>--- lib/mocha/mock_methods.rb (revision 1114)<br>+++ lib/mocha/mock_methods.rb (working copy)<br>@@ -68,6 +68,7 @@<br> method_names = method_names.is_a?(Hash) ? method_names :<br>{ method_names => nil }<br>
method_names.each do |method_name, return_value|<br> expectations << Stub.new(self, method_name,<br>backtrace).returns(return_value)<br>+ self.metaclass.send :undef_method, method_name if<br>self.metaclass.method_defined?
method_name<br> end<br> expectations.last<br> end<br><br>Index: test/mocha/auto_verify_test.rb<br>===================================================================<br>--- test/mocha/auto_verify_test.rb (revision 1114)
<br>+++ test/mocha/auto_verify_test.rb (working copy)<br>@@ -155,6 +155,11 @@<br> assert_equal 'named_stub', stub.__mock_name<br> end<br><br>+ def test_stub_should_respond_to_already_defined_method<br>
+ stub = test_case.stub(:id=>"id")<br>+ assert_equal "id", <a href="http://stub.id">stub.id</a><br>+ end<br>+<br> def test_should_create_greedy_stub_with_name<br> greedy_stub = test_case.stub_everything('named_greedy_stub')
<br> assert_equal 'named_greedy_stub', greedy_stub.__mock_name</blockquote><div><br>Thanks for the patch. This has been on the todo list for quite some time.<br><br>Your solution works fine for some methods (e.g
. id), but not for methods that Mocha currently relies on (e.g. inspect).<br></div></div><br>I have been working on a more generic solution which I hope to commit shortly.<br clear="all"><br>-- <br>James.<br><a href="http://blog.floehopper.org">
http://blog.floehopper.org</a>