Well, it is about that time again, I got enough changes to make a release worthwhile. It has been almost five months, and we got a whole bunch of stuff going on, including a lot of stuff from contributors. (Take that, one man project :-) ).
It is interesting to note that a lot of people have stuck with Rhino Mocks 3.1, I guess that there is really no need to upgrade, if you get what you want...
Features, more features, glorious features!
- Added CreateMockWithRemoting and DynamicMockWithRemoting to work around BCL bug when overriding a generic method with generic constraint.
This is useful when you want to force Rhino Mocks to use Remoting proxies (usually it just guess and you don't deal with this). That is needed because at certain cases ( generic methods with generic constraints ) there is a bug in Reflection Emit that generate invalid code.
- Mike Nichols has added List.ContainsAll() constraint
- Shawn Neal added the DoNotExpect syntax, which is clearer the Expect.Call().Repeat.Never(), it is certainly shorter.
- Added trace writer with stack trace, should make it easier to track down strange mocking behavior. Now you can just enable logging and see all the method calls that are being made.
- Guido van Loon supplied the Property.AllPropertiesMatch constraints
- Making sure that recorders that wrap recorders will be merged if they contain only one element. Again, this is something that you are not supposed to understand unless you went deep into the code. Suffice to say that the behavior is easier to understand now.
Bugs, annoying bugs, stupid bugs!
- Fixing issue with empty recorders nested in recorders that has expectations. If you don't get that, then rest assure, neither do I.
- Demid Sukhovsky fixed Rhino Mocks support for Out/Ref values using remoting proxies.
- Fixing null reference exception when stubbing a class with protected setter.
- Aaron Jensen fixed the validation message when you expect a method that accept a mock object as a parameter.
- Aaron Jensen also fixed a bunch of my typos.
- Steven Rockarts fixed a bunch more of my typos.
- Fixed an issue with methods returning non primitive value types, such as UInt32