NUnit或Fluent断言测试引用相等性
本文关键字:引用 测试 Fluent 断言 NUnit | 更新日期: 2023-09-27 18:23:57
我使用的是NUnit 2.6.2+Fluent Assertions 2.0.1。
我想断言两个引用不指向同一个对象实例。我找不到一种干净的方式来表达这一点。
NUnit有Assert.ReferenceEquals(ref1, ref2)
-但我找不到否定的断言。
在Fluent断言中,我找不到任何可以直接支持此场景的内容。
我唯一能做的就是这样:
NUnit:Assert.False(object.ReferenceEquals(ref1, ref2));
流利:object.ReferenceEquals(ref1, ref2).Should().BeFalse();
就最小噪音而言,这两种方式似乎都不太理想。有更好的方法吗?
您可以使用NotBeSameAs()方法:
ref1.Should().NotBeSameAs(ref2);
其文件显示:
断言对象引用引用的对象与另一个对象引用是指.
您可以在此处使用Is.Not.SameAs()和Nunit 3.x
var x = new object();
Assert.That(x, Is.SameAs(x)); // success
Assert.That(x, Is.Not.SameAs(x)); // fail
var y = new object();
Assert.That(x, Is.SameAs(y)); // fail
Assert.That(x, Is.Not.SameAs(y)); // success