我正在对日期时间进行单元测试,但它失败了,因为测试名称:
GetDateTime2 结果消息:Assert.AreEqual 失败。预期:<28/05/2017 20:00:00 (System.String)>。实际:<28/05/2017 20:00:00 (System.DateTime)>。
有没有什么方法可以将字符串与日期时间进行比较,我是否必须更改字符串日期和字符串时间的属性?
public void GetDateTime()
{
FootballEvent football = new FootballEvent();
football.Time = "20:00:00";
football.Date = "28/05/2017";
var footballtime = football.GetDateTime();
var expected = "28/05/2017 20:00:00";
Assert.AreEqual(expected, footballtime);
}
Run Code Online (Sandbox Code Playgroud)
正如有些人在评论中所说,为什么不直接制作一个DateTime对象然后比较它们呢?
例子:
var footballtime = football.GetDateTime();
var expected = "28/05/2017 20:00:00";
DateTime expectedDate = DateTime.Parse(expected);
Assert.AreEqual(expectedDate, footballtime);
Run Code Online (Sandbox Code Playgroud)
您可以使用ToString()您希望时间采用的任何格式进行调用以进行比较。
var expected = "28/05/2017 20:00:00";
//Use HH for 00-23, use H for 0-23, use hh for 01-12 and use h for 1-12
Assert.AreEqual(expected, footballtime.ToString("dd/MM/yyyy HH:mm:ss"));
Run Code Online (Sandbox Code Playgroud)
然而,您似乎应该以正确的格式(日期时间)比较两者。
问问自己为什么要通过字符串 ( ) 初始化时间,为什么不为日期和时间 ( )football.Time = "20:00:00";使用正确的数据类型DateTime