我对单元测试还不熟悉,我正试图弄清楚是否应该开始使用更多的internal访问修饰符.我知道如果我们使用internal并设置汇编变量InternalsVisibleTo,我们可以测试我们不想从测试项目中声明为公共的函数.这让我觉得我应该总是使用internal,因为至少每个项目(应该?)都应该使用internal有自己的测试项目.你们能告诉我为什么我不该这么做吗?我应该什么时候使用private

推荐答案

需要测试内部类,并且有一个assembly属性:

using System.Runtime.CompilerServices;

[assembly:InternalsVisibleTo("MyTests")]

将其添加到测试项目的项目信息文件中,例如Properties\AssemblyInfo.cs.在本例中,"MyTests"是测试项目.

.net相关问答推荐

为什么$NULL在ForEach-Object{}和Foreach()中的行为不同?

DI通过对象的接口而不是实际类型来解析服务

PowerShell中窗体定时器和系统定时器的统一处理

从容器化客户端应用程序连接到 OPC-UA 服务器

Ubuntu 22.04 + JetBrains Rider 不能做脚手架 dbContext

将字符串与容差进行比较

Web API 中基于令牌的身份验证,无需任何用户界面

为什么这个多态 C# 代码会打印它的功能?

Environment.TickCount 与 DateTime.Now

Int32.ToString() 是特定于文化的吗?

您是否使用 TestInitialize 或测试类构造函数来准备每个测试?为什么?

为什么 .NET 中没有可序列化 XML 的字典?

如何使用转储文件来诊断内存泄漏?

C# 测试字符串是否为整数?

System.Speech.Recognition 和 Microsoft.Speech.Recognition 有什么区别?

Visual Studio 2017 和 2019 突出显示滚动条中所选单词的出现

使 HashSet 不区分大小写

DLL 中有什么以及它是如何工作的?

将控制台输出镜像到文件

为 webClient.DownloadFile() 设置超时