【发布时间】:2013-07-17 09:57:14
【问题描述】:
我试图模拟一个带有两个参数的方法,方法的签名如下:
User DoSomething(User user, List<Role> newRoleList);
我希望此方法仅在“newRoleList”参数包含一些预定义的角色和其中的特定用户名时才返回某些内容。所以我没有使用It.IsAny<>,而是尝试使用It.Is<>。我面临的问题是第二个参数。如何设置第二个参数?
我正在努力实现这样的目标:
List<Role> roleList = new List<Role>()
{
new Role() { RoleName="RoleOne"},
new Role() { RoleName="RoleTwo"}
};
mockComponent.Setup(x => x.UpdateUserRoles(
It.Is<User>(user1 => user1.UserName == "DummyUser"),
It.Is<List<Role>>(y=>y==roleList)
))
.Returns(user);
但这总是返回'null'。如果我将第二个参数更改为It.IsAny<List<Role>>(),那么它会返回一个正确的值。
请建议如何实现这一点,有没有更好的方法来提供特定列表作为参数或什么?
【问题讨论】: