Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MbUnit Assert.AreEqual DateTime和Decimal不相等_C#_Unit Testing_Mbunit - Fatal编程技术网

C# MbUnit Assert.AreEqual DateTime和Decimal不相等

C# MbUnit Assert.AreEqual DateTime和Decimal不相等,c#,unit-testing,mbunit,C#,Unit Testing,Mbunit,我有一个这样的班级结构 public class Entity { public int Id { get; set; } public string Label { get; set; } public string Description { get; set; } public DateTime CreatedAt { get; set; } public DateTime ModifiedAt { get; set; } public Da

我有一个这样的班级结构

public class Entity
{
    public int Id { get; set; }
    public string Label { get; set; }
    public string Description { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime ModifiedAt { get; set; }
    public DateTime? DeletedAt { get; set; 
}
我填充所有属性并将其保存到数据库中,然后从数据库中获取该对象

var entity = CreateEntity()
SaveToDB(entity);
var entityFromDb = GetFromDB();
并尝试用这种方式比较这些值

Assert.AreEqual(entity, entityFromDb);
DateTime和十进制值的比较失败

期望值相等

期望值: Id=28, CreatedAt=2011-01-05T14:06:32.6874218Z, DeletedAt=null, Description=“Description”, 持续时间=2000米, Label=“测试实体”, 修改日期=2011-01-05T14:06:32.6874218Z

实际值: Id=28, CreatedAt=2011-01-05T14:06:32.0000000, DeletedAt=null, Description=“Description”, 持续时间=2000.00000米, Label=“测试实体”, ModifiedAt=2011-01-05T14:06:32.0000000


我可以用某种方式比较这些值,但不必对每个字段进行比较,一个选项是更改日期时间的设置器,以便它们在该点执行截断-基本上,问题是您的数据库没有存储亚秒精度,因此在实体中也没有它似乎是合理的


我希望十进制值已经被比较为相等,即使它们具有不同的存储精度。(1.000m和1.0m具有不同的表示形式,但被视为相等。)

一个选项是更改日期时间的设置器,以便它们在该点执行截断-基本上,问题是您的DB没有存储亚秒精度,因此在实体中也不使用它似乎是合理的

我希望十进制值已经被比较为相等,即使它们具有不同的存储精度。(1.000m和1.0m有不同的表示,但被视为相等。)