在做单元测试的时候,想比较两个实例是否相同,用了Assert.ReferenceEquals,结果发现无论是否真的相同总是能通过。
通过“转到定义”发现调用的是System.Object.ReferenceEquals,这时还没想明白问题。于是使用:
Assert.IsFalse(object.ReferenceEquals(expected, actual));
这个可以正确执行。
于是又想是Assert做了什么吗?应该没有啊。网上继续搜,找到一篇文章:
终于恍然大悟,ReferenceEquals根本就不是断言方法,任何一个类都已经从Object继承了这个静态方法。
这是一个严重的理解错误啊,谨记。
关键字: Assert ReferenceEquals
发表评论
相关文章
想了解服务发现、配置管理的同学,欢迎加入1000人Consul交流群:234939415
扫码关注公众号:萤火架构
文章分类
最新评论