Avatar ·

C# 中的 internal 修饰符与单元测试:如何测试内部方法?

大家好!我是一名初学 C# 的开发者,遇到了单元测试的问题。我们的项目中有一个带有 `internal` 修饰符的类,我无法从测试项目中访问它。 示例: ```csharp // 在 MyLibrary 项目(类库)中 internal class InternalService { internal string GetSecretData() { return "SensitiveInfo"; } } public class PublicService { private readonly InternalService _service = new InternalService(); public string ProcessData() { return _service.GetSecretData().ToUpper(); } } ``` 我想为 `InternalService.GetSecretData()` 编写单元测试,但测试项目(MyLibrary.Tests)看不到这个类。我听说过可以使用 `InternalsVisibleTo`,但不太明白它是如何工作的。另外,我担心测试 internal 方法是否会破坏封装原则?也许最好只通过公共方法进行测试?但那样的话...