У меня есть следующий тест внутри проекта, ориентированного на .NET 4.0:
[TestFixture]
public class Donkey
{
[Test]
public void TestListSorting()
{
var expected = new[]
{
MockRepository.GenerateStub<IComparable>(),
MockRepository.GenerateStub<IComparable>()
};
var sorted = new List<IComparable>(expected);
CollectionAssert.AreEqual(expected, sorted);
sorted.Sort();
CollectionAssert.AreEqual(expected, sorted);
}
}
Если я запустил его на компьютере с установленным только .NET 4.0, он терпит неудачу. Если я запустил его на машине с установленным только .NET 4.5, он пройдет.
Я предполагаю, что в .NET 4.5 реализация Sort
была изменена для поддержания порядка при сортировке списка объектов, каждый из которых возвращает 0
из CompareTo
.
Теперь отложите очевидное безумие этого теста. Я знаю, что безумно полагаться на такое поведение.
Неужели это перерыв? Он не указан на этой странице о совместимости между .NET 4.0 и 4.5.
Есть ли причина для этого? Я что-то упускаю? Есть ли другая страница, которая показывает фактические изменения? Должен ли я просто садиться и перестать паниковать?