2013-07-17 81 views
0

我試圖嘲弄它有兩個參數,方法的簽名如下所示的方法傳遞一個List paratemeter:如何使用起訂量

用戶DoSomething的(用戶用戶列表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); 

但這總是返回「零」。如果我將第二個參數更改爲It.IsAny>(),那麼它將返回一個適當的值。

請建議如何實現這一點,有沒有更好的方式提供一個特定的列表作爲參數或什麼?

回答

0

最後我找到了解決方案,我需要在我的設置中指定如何處理兩個列表相同的標準。

我已經改變的代碼:

mockComponent.Setup(X => x.UpdateUserRoles(It.Is(用戶1 => user1.UserName == 「DummyUser」),It.Is>(Y = > y [0] .RoleName ==「RoleOne」& & y [1] .RoleName ==「RoleTwo」)))。

它的工作就像一個魅力..