Вызов Assert.AreEqual (ожидаемый, ожидаемый) не должен завершиться ошибкой. Если вы допустили ошибку в своем вопросе и имели в виду Assert.AreEqual (ожидаемый, фактический) , а ваш HomeControllerHelper.GetNavigationMenuByUserRole возвращает новый экземпляр NavigationMenu, то вызов Assert.AreEqual всегда будет вызывать ошибку Тип NavigationMenu является классом и, следовательно, ссылочным типом, даже если для свойств экземпляров установлены одинаковые значения.
Assert.AreEqual выполняет проверку на равенство, если две переменные указывают на одну и ту же ссылку (иначе. ReferenceEqual), а не если две ссылки содержат одинаковые значения (свойства).
Вы можете переопределить метод Equals вашего класса NavigationMenu, чтобы обеспечить пользовательскую реализацию, если два экземпляра вашего класса равны.