首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft.TestApi对象比较未识别枚举差异

Microsoft.TestApi对象比较未识别枚举差异
EN

Stack Overflow用户
提问于 2016-03-24 09:47:14
回答 1查看 81关注 0票数 0

我正在尝试使用Microsoft.TestApi比较两个对象。问题是,它没有发现枚举值之间的差异。

在下面的示例中,我希望测试能够通过,因为枚举值是不同的,但是TestApi比较不会返回不匹配的结果。

如何让它检测枚举值的差异?

代码语言:javascript
复制
public class ObjectComparer
{
    public bool AreDifferent(Holiday h1, Holiday h2)
    {
        var comparer = new ObjectGraphComparer();

        var factory = new PublicPropertyObjectGraphFactory();
        var sourceGraph = factory.CreateObjectGraph(h1);
        var targetGraph = factory.CreateObjectGraph(h2);

        IEnumerable<ObjectComparisonMismatch> result;
        comparer.Compare(sourceGraph, targetGraph, out result);

        return result.Any();
    }
}

public class Holiday
{
    public Day Day { get; set; }
}

public enum Day
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday
}

测试

代码语言:javascript
复制
[TestMethod]
public void ShouldDetectDifferentEnumValues()
{
    var h1 = new Holiday {Day = Day.Monday};
    var h2 = new Holiday {Day = Day.Tuesday};
    var comparer = new ObjectComparer();

    var result = comparer.AreDifferent(h1, h2);

    Assert.IsTrue(result);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-24 15:41:51

我已经复制了你的代码,并在源代码中做了一个小的研究。我的朋友,你运气不好,吊灯是不能比较的。

代码可以在codeplex上找到,相关部分如下

代码语言:javascript
复制
// compare primitives, strings, datatimes, guids
if (leftNode.ObjectType.IsPrimitive ||
            leftNode.ObjectType == typeof(string) ||
            leftNode.ObjectType == typeof(DateTime) ||
            leftNode.ObjectType == typeof(Guid))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36197180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档