2017-07-06 187 views
0

我使用日期进行单元测试,但构建失败,因为日期中有时间戳。我将如何删除它以启用测试工作?使用DateTime进行单元测试

DateTime mockDateTime = new DateTime(2025, 4, 18).Date; 
_dateTimeWrapper.Setup(m => m.Now).Returns(mockDateTime) 

的mockDateTime返回4/18/2025 12:00:00 AM但我只想4/18/2025

+0

使用DateTime vs var将导致相同的数据类型。使用var实现的声明实际上只是编译为相同的CLR代码,就像您声明它为DateTime一样。 –

回答

3

代替(m => m.Now),你有没有试过(m=> m.Today)呢?

DateTime mockDateTime = new DateTime(2025, 4, 18).Date; 
_dateTimeWrapper.Setup(m => m.Today).Returns(mockDateTime) 

此外,DateTimes始终有一个时间组件。你在代码中执行任何toString操作吗?你应该检查ToShortDateString(),这是什么会给你日期时间的日期部分: https://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring(v=vs.110).aspx

+0

我注意到第二行来测试如果时间戳没有被添加 –

+0

仍然有一个时间戳...我在做什么错误smh –

+0

@ghost_king你如何检查它?如果你正在寻找总是显示时间的调试器,如果你想通过你的程序来显示它,你需要调用'.ToShortDateString()'就像Nathan所说的那样,不用时间就可以得到字符串表示。 –