c# - 如何在对象类中对字符串值进行单元测试
问题描述
我正在尝试对使用 get/sets 在其中保存值的对象类进行单元测试。
我了解您将如何测试数字计算。
但是在没有像 x+y 这样的测试方法的情况下,如何测试 get/sets?
这是我需要测试的课程:
public class Train
{
//Variables to hold each Trains details. Using different data types for specific entrys when necessary.
private string _trainID;
private string _departure;
private string _destination;
private string _type;
private string _interStop;
private TimeSpan _departureTime;
private string _departureDay;
private bool _sleeperBerth;
private bool _firstClass;
//Get/Set for setting Train ID value.
public string TrainID
{
get { return _trainID; }
set { _trainID = value; }
}
//Get/Set for setting departure value.
public string Departure
{
get { return _departure; }
set { _departure = value; }
}
//Get/Set for setting destination value.
public string Destination
{
get { return _destination; }
set { _destination = value; }
}
//Get/Set for setting type value.
public string Type
{
get { return _type; }
set { _type = value; }
}
//Get/Set for setting Intermediate Stop value.
public string IntermediateStop
{
get { return _interStop; }
set { _interStop = value; }
}
//Get/Set for setting Departure Time value.
public TimeSpan DepartureTime
{
get { return _departureTime; }
set { _departureTime = value; }
}
//Get/Set for setting Departure Day value.
public string DepartureDay
{
get { return _departureDay; }
set { _departureDay = value; }
}
//Get/Set for setting Sleeper Berth value.
public bool SleeperBerth
{
get { return _sleeperBerth; }
set { _sleeperBerth = value; }
}
//Get/Set for setting First Class value.
public bool FirstClass
{
get { return _firstClass; }
set { _firstClass = value; }
}
}
我还编写了某种我认为正确但失败的单元测试。有人可以让我了解我将如何做到这一点吗?
这是我自己做的测试(真的就这么简单吗?):
namespace TrainTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestTrainID()
{
Train train = new Train();
string id = "1S45";
train.TrainID = "1S45";
Assert.AreEqual(id, train.TrainID);
}
}
}
解决方案
您正在浪费时间重新发明轮子。
用自动实现的属性替换你的属性,突然之间你不需要对你的 getter 和 setter 进行单元测试,因为编译器会创建所有的 getter/setter 代码并确保它是正确的:
public class Train
{
public string TrainID { get; set; }
public string Departure { get; set; }
... etc. ...
}
(因为您提到这是一个旨在让您开始进行单元测试的“玩具示例”:是的,您提出的测试很好。)
推荐阅读
- javascript - 在 creare-react-app - 特定文件中禁用 eslint
- java - 在客户端收到 Unicode 字符时无法正确显示
- javafx - 两个非字符串属性的双向绑定 (JavaFX)
- jfrog-xray - XRay 无法检测 NuGet 包依赖项中的漏洞
- r - R统计,试图检查表的nrow ==某个数字,但如果表没有行,代码就会混乱
- python - 无法将值附加到列。出现错误 IndexError:列表索引超出范围
- r - 创建“for循环”以合并多对csv文件
- php - 如何获取最深的 XML 元素
- javascript - Strapi - 如何同时上传文件和创建新模型条目?
- reactjs - 如何使用 React.js 更改列表的项目符号颜色?