Ayende @ Rahien

Refunds available at head office

Rhino Mocks 3.3

image Well, it has been a couple of months, but we have a new release of Rhino Mocks. I would like to thank Aaron Jensen, Ivan Krivyakov and Mike Winburn for contributing.

Probably the two big new features is the ability to call void methods using Expect.Call and the ability to use remoting proxies to mock classes that inherit from MarshalByRefObject. Rhino Mocks will now choose the appropriate mocking strategy based on the type you want.

Note: you cannot pass constructor arguments or create partial mocks with remoting proxies.

The change log is:

Bug Fixes: 

  • Fixing inconsistency in how Is.Equals handled ICollection instances, now it will compare them by their values, not their Equals() 
  • Fixing NASTY bug where setup result that were defined in a using(mocks.Ordered()) block were not registered properly. 

Improvments:

  • Changing error message to "are you calling a virtual (C#) / Overridable (VB) method?" - make it friendlier to VB guys. 
  • Exception for Record will not trigger a ReplayAll(), which can mask the exception. 
  • Adding a check for running on Mono to avoid calling Marshal.GetExceptionCode in that case.

New features:

  • Adding support for calling void methods using Expect.Call
  • Adding remoting proxies.
  • Made IMethodOptions generic. Allows compile time type safety on Return. 
  • Adding a PublicFieldConstraint

As usual, you can get it here

Comments

Kevin Williams
10/26/2007 02:34 AM by
Kevin Williams

Sweet!

Love the logo. Did you do that yourself?

Chris Brandsma
10/26/2007 02:46 AM by
Chris Brandsma

Very nice, I was planning on talking about Mock objects at my next user group meeting anyway. This will help.

Ayende Rahien
10/26/2007 10:20 AM by
Ayende Rahien

Kevin, no. :-)

I can't draw a straight line with a ruler.

Romeliz did it:

http://www.ayende.com/Blog/archive/2007/07/31/New-Rhino-Mocks-Logo.aspx

MarioL
10/26/2007 03:05 PM by
MarioL

Great job! Thanks Oren and everyone else who contributed!

Haacked
10/26/2007 05:59 PM by
Haacked

The delegate thing for void methods is clever. With the new language features, that'll reduce to a lambda.

() => SomeMethod();

Bil Simser
10/26/2007 06:04 PM by
Bil Simser

Great! Thanks for the void method support. It bugs the crap out of me having to write extra lines to ignore the last call. This is going to reduce unnecessary code in the test codebase, which is always a good thing in my books.

Dennis Olano
10/26/2007 06:15 PM by
Dennis Olano

Thanks a lot to the team!

Comments have been closed on this topic.