NUnit或Fluent断言测试引用相等性

本文关键字:引用 测试 Fluent 断言 NUnit | 更新日期: 2023-09-27 18:23:57

我使用的是NUnit 2.6.2+Fluent Assertions 2.0.1。

我想断言两个引用不指向同一个对象实例。我找不到一种干净的方式来表达这一点。

NUnitAssert.ReferenceEquals(ref1, ref2)-但我找不到否定的断言。

Fluent断言中,我找不到任何可以直接支持此场景的内容。

我唯一能做的就是这样:

NUnit:Assert.False(object.ReferenceEquals(ref1, ref2));

流利:object.ReferenceEquals(ref1, ref2).Should().BeFalse();

就最小噪音而言,这两种方式似乎都不太理想。有更好的方法吗?

NUnit或Fluent断言测试引用相等性

您可以使用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