在做单元测试的时候,想比较两个实例是否相同,用了Assert.ReferenceEquals,结果发现无论是否真的相同总是能通过。
通过“转到定义”发现调用的是System.Object.ReferenceEquals,这时还没想明白问题。于是使用:
Assert.IsFalse(object.ReferenceEquals(expected, actual));
这个可以正确执行。
于是又想是Assert做了什么吗?应该没有啊。网上继续搜,找到一篇文章:
终于恍然大悟,ReferenceEquals根本就不是断言方法,任何一个类都已经从Object继承了这个静态方法。
这是一个严重的理解错误啊,谨记。
关键字: Assert ReferenceEquals
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论