Today I decided that I had enough time to get bugs for the 3.5 RC, so I fixed all the remaining bugs, updated the Rhino Mocks 3.5 Documentation, and put the binaries out the site.

For this release, I actually have 4 binary packages. One for .NET 3.5 and one for .NET 2.0, but I have an additional criteria, with the castle assemblies merged (default) and with the castle assemblies included). The reason for having those two options is that people who want to extend Rhino Mocks directly can do it more easily. In general, I suggest using the merged version.

So, what do we actually have here (feature differences from 3.4)?

Features:

Assert Act Arrange syntax for mocking Including support for .NET 2.0

Added a way to access the mocked method at runtime, using WhenCalled (similar to Do(), but without the pain of having to specify a special delegate).

CreateMock() is deprecated and marked with the [Obsolete] attribute. Use StrictMock() instead.

Support for mocking interface in C++ that mix native and managed types. (Note, may require that you install kb957541 to get around bug introduced to the framework on SP1).



New event raising syntax:

eventHolder.Raise(stub => stub.Blah += null, this, EventArgs.Empty);

eventHolder.Raise(stub => stub.Blah += null, this, EventArgs.Empty); Better support for multi threaded replays. Note that access to the mock object is now serialized.

Support AssertWasCalled on parial mocks.

Patches:

From Sebastian Jancke, adding support for SetPropertyAndIgnoreArguments() and SetPropertyWithArguments( o );

From Yann Trevin, adding support for List.Element("MyKey", ...), so we are not limited to just integers.

From David Tchepak, adding support for ctor arguments when creating a mock using static method.

From Stefan Steinegger - much better support for creating inline constraints.



Improvements:

Better handling of exception in raising events from mock objects

Better error message when trying to set expectation on properties of a stub.

Better error handling for AAA syntax abuse

Will give better errors if you call Verify on a mock that is in record mode.

Allowing to return to record mode without losing expectations.

BackToRecord extension method.

AAA syntax now works with Ordering

Better error message if trying to use SetupResult on stubbed mock properties.

Better error message when trying to mock null instance.

Bug fixes: