仅在单元测试中可用的方法
Methods to be only available in Unit test
我正在寻找一种使方法仅在单元测试脚本中可用的方法。
public class MyClass
{
public Data MyData { get; }
internal MyClass()
{
// Complex code setting MyData
}
#if UNITY_MACROS
public MyClass(MyData data)
{
MyData = data;
}
#endif
}
需要 public 构造函数仅在单元测试脚本和程序集中可用。
我试图查看测试程序集中的定义约束,但我可能没有正确使用,因为我没有发现任何差异。
您需要的是使用 InternalsVisibleTo 属性 (MS docs)。您可以在 class 源文件中添加以下行,也可以在单独的 AssemblyInfo.cs 中添加以下行,您可以在与 asmdef 文件相同的文件夹中创建它:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("MyUnitTestAssembly")]
在这种情况下,您可以将 MyClass(MyData 数据) 保留在内部。
我正在寻找一种使方法仅在单元测试脚本中可用的方法。
public class MyClass
{
public Data MyData { get; }
internal MyClass()
{
// Complex code setting MyData
}
#if UNITY_MACROS
public MyClass(MyData data)
{
MyData = data;
}
#endif
}
需要 public 构造函数仅在单元测试脚本和程序集中可用。
我试图查看测试程序集中的定义约束,但我可能没有正确使用,因为我没有发现任何差异。
您需要的是使用 InternalsVisibleTo 属性 (MS docs)。您可以在 class 源文件中添加以下行,也可以在单独的 AssemblyInfo.cs 中添加以下行,您可以在与 asmdef 文件相同的文件夹中创建它:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("MyUnitTestAssembly")]
在这种情况下,您可以将 MyClass(MyData 数据) 保留在内部。