CSharp - C# NUnit或者流畅的断言测试用于引用相等性?

  显示原文与译文双语对照的内容
50 3

我正在使用 NUnit 2.6.2 + 流畅断言 2.0.1.

我想要 assert的两个引用不指向同一个对象实例。我找不到干净的方法来表达。

has,但是我找不到 negated assertion断言。

Fluent断言我找不到任何直接支持这个场景的东西。

我唯一能做到的就是这样:

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

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

这两种方法在最小噪声方面都不理想。还有更好的方法吗?

时间:原作者:0个回答

98 4

你可以使用 NotBeSameAs() 方法:

ref1.Should().NotBeSameAs(ref2);

它的文档说明:

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

原作者:
67 1

你可以在这里使用 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
原作者:
...