【发布时间】:2011-10-17 11:26:23
【问题描述】:
我有一个包含多个结构的类:
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; }
}
在单元测试中,我进行函数调用并比较结果:
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);
但是 Assert.AreEqual 总是抛出 AssertFailedException。对象是相同的,我已经使用调试器验证了这一点。请分享任何想法。谢谢。
【问题讨论】:
-
请用您使用的语言标记。
-
您使用的是哪个单元测试框架?单元?测试?单位?还有什么? (请更新您的标签)。
-
你在这里比较相同的对象,你确定它失败了吗?
-
@narek:你不是说 Assert.AreEqual(实际,预期)吗?您输入了 Assert.areEqual(expected, expected)
-
应该是
Assert.AreEqual(expected, actual);?
标签: c# unit-testing nunit