2017-07-06 132 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所說的那樣,不用時間就可以得到字符串表示。 –