I was attempting to mock an internal interface with NMock2 and no matter what I tried I continued to get the following failure.
Test ‘M:ExampleOfIVT.PersonTests.FirstTest’ failed: Type is not public, so a proxy cannot be generated. Type: ExampleOfIVT.IPerson
Castle.DynamicProxy.Generators.GeneratorException: Type is not public, so a proxy cannot be generated. Type: ExampleOfIVT.IPerson
at Castle.DynamicProxy.DefaultProxyBuilder.AssertValidType(Type target)
at Castle.DynamicProxy.DefaultProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(Type interfaceToProxy, Type additionalInterfacesToProxy, ProxyGenerationOptions options)
at NMock2.Monitoring.CastleMockObjectFactory.GetProxyType(CompositeType compositeType)
at NMock2.Monitoring.CastleMockObjectFactory.CreateMock(Mockery mockery, CompositeType typesToMock, String name, MockStyle mockStyle, Object constructorArgs)
at NMock2.Internal.MockBuilder.Create(Type primaryType, Mockery mockery, IMockObjectFactory mockObjectFactory)
at NMock2.Mockery.NewMock[TMockedType](IMockDefinition definition)
at NMock2.Mockery.NewMock[TMockedType](Object constructorArgs)
PersonTests.cs(59,0): at ExampleOfIVT.PersonTests.FirstTest()
Obviously I have a project, ExampleOfIVT, and a test project, ExampleOfIVTTests.
All the Google searching suggested that I should be adding these lines to my AssemblyInfo.cs file in the ExampleOfIVT project but these line did NOT work.
Please not that I downloaded NMock2 from here: http://sourceforge.net/projects/nmock2/
[text title=”Not Working”]
Turns out that they have changed to use Castle.DynamicProxy and so the only assembly I needed was this one.
Return to C# Unit Test Tutorial