【发布时间】:2019-05-19 15:40:41
【问题描述】:
我正在编写一些控制台应用程序,例如我有不同的类,我希望能够在我的应用程序中调用这些类来打印输出。
// For example I have Vehicle class and method Park in it
public void Park()
{
if (Parking.ParkedVehicles.Count < ParkingSettings.ParkingCapacity)
{
Parking.ParkedVehicles.Add(this);
_isParked = true;
Console.WriteLine("Your vehicle(" + Color + " " + Make + "," +
LicenseNumber + ") was parked successfully. Go be pedestrian somewhere else");
}
else
{
Console.WriteLine("Sorry. Unfortunately all parking slots are occupied, try again next time");
}
}
还有 Parking 类,其中包含 PrintOccupanctStatus() 方法
public static void PrintOccupancyStatus()
{
if (ParkedVehicles.Count < ParkingSettings.ParkingCapacity)
{
Console.WriteLine($"Currently there are {ParkingSettings.ParkingCapacity - ParkedVehicles.Count} spots left");
}
else
{
Console.WriteLine("Sorry, parking has no free spots left");
}
}
所以这是两个不同的独立类,我在我的控制台应用程序中调用它们。它被认为是一种“OKAY”的方法还是我应该做类似ConsoleHelper 的事情来打印结果并让上述方法返回字符串?
【问题讨论】:
-
没关系....但是看着那个函数,它返回 void 并在内部成员上运行并写入控制台以通过侧通道返回数据让我很伤心。如果您改为将其结构化为返回一个 Tuple
那么单独进行单元测试会容易得多。如果您还传入了 ParkedVehicles.Count 和 ParkingSettings.ParkingCapacity,那么单元测试将非常容易,并且您可以将其设为静态 -
谢谢,布赖恩。我会考虑你的建议,不胜感激
标签: c#