参数不匹配异常,即使参数计数正确

时间:2017-09-06 08:41:02

标签: c# unit-testing lambda moq

请参阅以下代码。

接口中的方法签名

OrganizationVM GetParty(int param1, int param2, int param3);

测试方法

[TestMethod]
public void GetOrganizationByPartyRoleId()
    {
        int param1 = 1;int param2 = 1;int param3 = 1;
        OrganizationVM org = this.MockManager.GetParty(param1, param2, param3);
        Assert.IsNotNull(org);
    }

测试项目的构造函数

int partyId = 2;
mockPartyManager.Setup(mr => mr.GetParty(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>())).Returns((int i) => organizationList.Where(x => x.partyID == i).Single());

抛出

  

参数计数不匹配。   例外。如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

您有GetParty(int param1, int param2, int param3)个参数,但在Returns来电时,您只使用一个参数。把它改成这样的东西

.Returns((int i, int j, int k) => organizationList.Where(x => x.partyID == i).Single());