我正在用 C# 编写一个程序并试图找出单元测试。我在 Visual Studio 中调用上下文菜单并单击“创建单元测试”。之后,会出现一个窗口,显示消息“仅在非测试项目和共享类或共享方法中支持创建单元测试”。试图找出问题所在。了解到只能为托管代码编写测试。但是 C# 代码是否总是被管理?什么是泛型类或方法?
补充: 制作WPF项目。我选择类的名称并通过单击鼠标右键调出菜单,在其中选择创建模块化类的项目。项目中的一个类的示例(没有为它和所有其他类创建测试):
lass FileIOService
{
private readonly string PATH;
public FileIOService(string path)
{
PATH = path;
}
public List<Date> LoadData(Date date)
{
var fileExists = File.Exists(PATH);
if (!fileExists)
{
List<Date> dateList = new List<Date>();
dateList.Add(date);
SaveData(dateList);
return dateList;
}
else
{
using (StreamReader file = File.OpenText(PATH))
{
JsonSerializer serializer = new JsonSerializer();
List<Date> dateList = (List<Date>)serializer.Deserialize(file, typeof(List<Date>));
int num = 0;
foreach(Date day in dateList)
{
if(day == date)
{
num = 1;
}
}
if (num == 0)
dateList.Add(date);
return dateList;
}
}
}
public void SaveData(object dates)
{
using (StreamWriter file = File.CreateText(PATH))
{
JsonSerializer serializer = new JsonSerializer { Formatting = Formatting.Indented };
serializer.Serialize(file, dates);
}
}
}
谷歌没有意识到这样的问题,这令人沮丧。了解正在发生的事情非常重要。我会很高兴任何提示!
可以不公开该类,但可以不公开 - 设置被测项目的特殊程序集属性:
测试
$(AssemblyName).Tests程序集的名称在哪里。此属性允许具有名称的程序集
$(AssemblyName).Tests查看所有内容internal- 当前项目的实体。事实证明一切都尽可能简单:有必要将课程公开:
所以这就是“普通班”。(: