Ran into this today. Was looking at some code written by Antony Marcano and noticed something which, greatly simplified, would amount to this:
[Test]
public void Test()
{
object[] a1 = new object[] {"First", "Second", "Third"};
object[] a2 = new object[] {"First", "Second", "Third"};
Assert.AreEqual(a1, a2);
}
This test was passing. Surely this should fail. But it turns out that NUnit v2.2 changes the reference comparison semantics for arrays. From the docs:
Starting with version 2.2, special provision is also made for comparing arrays. Two arrays will be treated as equal by Assert.AreEqual if they are the same length and each of the corresponding elements is equal.