Mam klasy, która zawiera kilka konstrukcjom:Dlaczego Assert.AreEqual (T obj1, Tobj2) niepowodzeniem z identycznych obiektów
public class NavigationMenu
{
public struct NavigationMenuItem
{
public bool Enabled { get; set; }
public int NumberOfPendingOperations { get; set; }
}
public NavigationMenuItem SubmitExpenses { get; set; }
public NavigationMenuItem ManageExpenses { get; set; }
public NavigationMenuItem SubmitBudgets { get; set; }
public NavigationMenuItem ManageBudgets { get; set; }
public NavigationMenuItem AuthorizeExpenses { get; set; }
public NavigationMenuItem ApproveExpenses { get; set; }
public NavigationMenuItem PayExpenses { get; set; }
public NavigationMenuItem BillExpenses { get; set; }
public NavigationMenuItem ManageReturnedExpenses { get; set; }
public NavigationMenuItem ManageIncompleteExpenses { get; set; }
public NavigationMenuItem ManageOrders { get; set; }
public NavigationMenuItem ApproveBudgets { get; set; }
public NavigationMenuItem AdministrateSystem { get; set; }
}
W badanej jednostki nawiązywać połączenia funkcji i porównać wyniki:
NavigationMenu expected = new NavigationMenu();
expected.SubmitExpenses = new NavigationMenu.NavigationMenuItem { Enabled = true };
expected.ManageExpenses = new NavigationMenu.NavigationMenuItem { Enabled = true };
NavigationMenu actual = HomeControllerHelper.GetNavigationMenuByUserRole(userRole);
Assert.AreEqual(expected, actual);
Ale Assert.AreEqual zawsze zgłasza wyjątek AssertFailedException. Obiekty są identyczne, zweryfikowałem to za pomocą debuggera. Podziel się pomysłami. Dzięki.
Oznacz to, którego języka używasz. – geoffspear
Które ramy testowania jednostkowego używasz? NUnit? MSTest? MbUnit? Coś innego? (zaktualizuj tagi). – Steven
Porównywasz te same obiekty tutaj, czy na pewno się nie uda? –