Assert.That (..., Is.EqualTo (...)) вызывает Object.Equals () в .NET Native, даже когда реализован IEquatable - PullRequest
0 голосов
/ 01 марта 2019

У меня есть структура Foo, которая реализует IEquatable<Foo>, предоставляя как IEquatable<Foo>.Equals(Foo), object.Equals(object), так и GetHashCode(), как требуется для этого интерфейса.

В обычных сборках .NET Framework при сборке и запуске этого теста NUnit:

Foo fooActual = getActualFooSomehow();
Foo fooExpected = loadExpectedFooFromSomewhere();
Assert.That(fooActual, Is.EqualTo(fooExpected));

переопределение IEquatable<Foo>.Equals(Foo) вызывается, как и ожидалось.Однако, когда я запускаю тот же тест в .NET Native для приложений Windows 10 UWP, вместо этого вызывается object.Equals(object).

Как мы можем заставить собственные тесты .NET вести себя так же, как и тесты .NET Framework в этом отношении?

...