Tôi có một lớp học, trong đó có một vài cấu trúc:Tại sao Assert.AreEqual (T obj1, Tobj2) thất bại với các đối tượng giống hệt nhau
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; }
}
Trong một thử nghiệm đơn vị tôi thực hiện một cuộc gọi chức năng và so sánh kết quả:
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);
Nhưng Assert.AreEqual luôn ném AssertFailedException. Các đối tượng giống hệt nhau, tôi đã xác minh điều này bằng trình gỡ lỗi. Hãy chia sẻ bất kỳ ý tưởng nào. Cảm ơn.
Vui lòng gắn thẻ bằng ngôn ngữ bạn đang sử dụng. – geoffspear
Bạn đang sử dụng khung kiểm thử đơn vị nào? NUnit? MSTest? MbUnit? Thứ gì khác? (vui lòng cập nhật thẻ của bạn). – Steven
Bạn đang so sánh cùng một đối tượng ở đây, bạn có chắc chắn rằng nó không thành công? –