C# 在DataTestMethod的输入参数中使用内部类

C# 在DataTestMethod的输入参数中使用内部类,c#,.net,mstest,C#,.net,Mstest,我使用带有自定义DataSource属性的DataTestMethod,当我想在DataTestMethod的输入参数中使用内部类时,我面临一个问题 [DataTestMethod, CustomDataSource] public void TestMethod(MyInternalClass param1) { // Do whatever } 我看到以下错误: 可访问性不一致:参数类型“MyInternalClass”较少 比方法“TestMethod(MyInternalCla

我使用带有自定义DataSource属性的DataTestMethod,当我想在DataTestMethod的输入参数中使用内部类时,我面临一个问题

[DataTestMethod, CustomDataSource]
public void TestMethod(MyInternalClass param1)
{
    // Do whatever
}
我看到以下错误:

可访问性不一致:参数类型“MyInternalClass”较少 比方法“TestMethod(MyInternalClass)”更易访问

有办法解决这个问题吗?

我已经在项目中使用了
InternalsVisibleTo
属性,以便测试项目可以使用内部类型。

将测试类声明为
internal
?但最好不要让您的内部构件对单元测试可见,这意味着您正在测试一个实现细节,否则,MsTest不会将它们检测为测试。那些
内部
类不是公共类,因为我的项目是其他人使用的库,但它们应该只能访问定义为公共的类。测试内部类不是测试实现细节。我并不是在测试私有方法或类似的东西。根据定义,内部类是一个实现细节。也许您可以提取一个公共接口并将其传递给
TestMethod()
?我已经有了公共接口,但我需要测试方法的输入参数中的具体实现,因为这些参数是使用AutoFixture(带有Automoq自定义)解决的,如果我没有提供具体的类,他们将被当作笑料来解决,这是我不想要的。