15

我正在使用 NUnit 2.6.2 + Fluent Assertions 2.0.1。

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

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

Fluent Assertions中,我找不到任何直接支持这种情况的东西。

我能做到的唯一方法是这样的:

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

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

就最小噪音而言,这两者似乎都不理想。有没有更好的办法?

4

2 回答 2

20

您可以使用 NotBeSameAs() 方法:

ref1.Should().NotBeSameAs(ref2);

它的文档说:

断言一个对象引用引用的对象与另一个对象引用引用的对象不同。

于 2013-07-19T08:52:18.423 回答
4

您可以在此处将 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
于 2017-06-28T11:37:47.577 回答