We are using Moq as our mocking framework, the problem is that type that needs to be mock-able is done using an interface, the problem with that is anything in that interface will be public and therefore considered part our public API.
is there a way to have to have a member that is mockable and not public?
If I’ve understood you correctly you want to be able to apply an interface to a type to support mocking, but do so in a manner that the interface will not be visible to public consumers of you code.
Well, one option is that you could implement an
internalinterface and use the[assembly:InternalsVisibleToAttribute]to make the internal types accessible to your unit tests.