I'm trying to figure out if I should start using more of internal
access modifier.
I know that if we use internal
and set the assembly variable InternalsVisibleTo
, we can test functions that we don't want to declare public from the testing project.
This makes me think that I should just always use internal
because at least each project (should?) have its own testing project.
Why shouldn't one do this? When should one use private
?
Internal classes need to be tested and there is an assembly attribute:
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo("MyTests")]
Add this to the project info file, e.g. Properties\AssemblyInfo.cs
, for the project under test. In this case "MyTests" is the test project.