The constructors are internal so subclassing is hard because you can't call
base.

If this were me, I wouldn't use Rhino, I create a mock by hand to do what I
want.  It's not too hard to do.

On Wed, Nov 11, 2009 at 6:01 PM, TheMightyKumquat <[email protected]>wrote:

>
> I'm looking to confirm that the following isn't possible.
>
> I'm trying to unit test this method:
> private void ValidationCallback(object sender, ValidationEventArgs
> args)
> {
>   this._isValid = false;
>   this._schemaErrors += args.Message + Environment.NewLine;
> }
>
> My problem is that ValidationEventArgs has no visible constructor, so
> instantiating it for the test gives a compilation error. From the
> compilation error, I worked out that the constructor should have two
> parameters, a XmlSchemaException and an XmlSeverityType enum value.
>
> I wondered whether it might be possible to stub or mock the
> ValidationEventArgs class, so I coded
>
> [TestMethod]
> public void ValidationCallbackTest()
> {
>   string msg = "message";
>   object [] argsForConstructor = {new XmlSchemaException(),
> XmlSeverityType.Warning);
>   ValidationEventArgs args = MockRepository.GenerateStub(typeof
> (ValidationEventArgs), argsForConstructor);
>   Expect.Call(args.Message).Return(msg);
>   accessor.ValidationCallback(this, args); //accessor is a private
> accessor object, instantiated when  test initializes
>   Assert.IsFalse(accessor._isValid);
>   assert.AreEqual(accessor._schemaErrors, msg + Environment.NewLine);
> }
>
> This test fails at runtime with the message
> "System.NotSupportedException: Parent does not have a default
> constructor. The default constructor must be explicitly defined."
>
> I take it that my stub is still trying to call the constructor of the
> actual class and is being denied access, or not finding a
> parameterless construcor in the concrete class? I'm a bit hazy on
> this: Ayende's notes say that "Rhino Mocks supports mocking classes as
> well as interfaces. In fact, it can even mock classes that don't have
> a default constructor!", so I don't know why I'm getting an error
> saying that I need a default constructor.
>
>
> >
>


-- 
Tim Barcz
Microsoft C# MVP
Microsoft ASPInsider
http://timbarcz.devlicio.us
http://www.twitter.com/timbarcz

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino.Mocks" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rhinomocks?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to