2014-08-29 3 views
0

값.단위 테스트 닷넷 날짜 시간

예상 시간 스탬프에는 635449135145624472의 틱 수가 있지만 데이터베이스에서받은 값은 틱 수 635449135140000000입니다. SQL Server DateTime에는 .NET DateTime 값의 정확도가 100ns이므로 이해할 수 있습니다 3.33ms의 정확도. 나는 그보다 더 정확한 타임 스탬프가 될 필요는 없지만 입력과 출력을 평등하게 테스트하는 표준 방법이 있습니까?

 
var timestamp = Session.CreateSQLQuery("SELECT GetDate()").UniqueResult<DateTime>(); 

답변

2

틱 수준에서 테스트하지 마십시오, 당신은 날짜를 예를 들어, 테스트하는 특정 형식을 사용할 수 있습니다 : 데이터베이스에서 타임 스탬프를 얻기

그것을 할 수있는 하나의 방법입니다

var dateFmt = "dd-MM-yyyy hh:mm:ss"; 
Assert.AreEqual(timestamp.ToString(dateFmt), record.TimeStamp.ToString(dateFmt)); 

또는 양자 택일로, 당신은 그렇게하지만 단지 분산을 위해 일부 공간을 추가 할 수

Assert.True((timeStamp - record.TimeStamp).TotalMilliseconds < 1000);