【发布时间】:2014-08-29 11:00:59
【问题描述】:
当我运行这段代码时:
var数据=“测试”; var timestamp = DateTime.Now; var id = repo.InsertNewRecord(数据,时间戳); var 记录 = repo.GetRecord(id); 断言.AreEqual(数据,记录。数据); Assert.AreEqual(timestamp, record.TimeStamp);...第二个断言失败。
预期时间戳的滴答计数为 635449135145624472,但我从数据库接收的值的滴答计数为 635449135140000000。这是可以理解的,因为 .NET DateTime 值的准确度为 100ns,而 SQL Server DateTime 只有精度为 3.33 毫秒。我真的不需要比这更准确的时间戳,但是是否有测试输入和输出是否相等的标准方法?
从数据库中获取时间戳是一种方法:
var timestamp = Session.CreateSQLQuery("SELECT GetDate()").UniqueResult【问题讨论】:
标签: .net sql-server unit-testing datetime