Plugins Dynamics CRM-使用Rhinomock对插件进行单元测试会得到奇怪的结果
我正在为使用Dynamics CRM和Rhinomock的插件编写单元测试。 在去掉OrganizationService.Retrieve()方法之后,当我调用去掉的方法时,返回null 从我所看到的情况(如果我错了,请纠正我),被剔除的方法签名必须与调用签名相同 这是我的密码: 测试设置Plugins Dynamics CRM-使用Rhinomock对插件进行单元测试会得到奇怪的结果,plugins,dynamics-crm,Plugins,Dynamics Crm,我正在为使用Dynamics CRM和Rhinomock的插件编写单元测试。 在去掉OrganizationService.Retrieve()方法之后,当我调用去掉的方法时,返回null 从我所看到的情况(如果我错了,请纠正我),被剔除的方法签名必须与调用签名相同 这是我的密码: 测试设置 var someGuid = Guid.Empty; var organisationServiceMock = MockRepository.GenerateMock<IOrganizationSe
var someGuid = Guid.Empty;
var organisationServiceMock = MockRepository.GenerateMock<IOrganizationService>();
调用代码
public static class SomeCrmEntityColumnSetQuery
{
public static ColumnSet ColumnSet => new ColumnSet("column1", "column2");
}
var someEntity = organisationServiceMock.Retrieve("someCrmEntity", someGuid, SomeCrmEntityColumnSetQuery.ColumnSet);
//someEntity为空
我尝试过的事情
查尔斯所以我在看了一段关于犀牛模型的PluralSight视频后找到了答案 我的问题是,在设置存根时,存根不接受值,而是要存根的方法的签名。例如: var OrganizationServiceMock=MockRepository.GenerateMock() //错 OrganizationServiceMock.Expect(x=>x.Retrieve(“someCrmEntity”,someGuid,SomeCrmEntityColumnSetQuery.ColumnSet)).Return(新实体()) //存根并不关心调用时将哪些值发送到方法中,而是关心方法签名类型是否匹配 //正确的 OrganizationServiceMock.Expect(x=>x.Retrieve(Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything)).Return(new Entity()) //在调用过程中,stubbed方法现在期望第一个参数是字符串,然后第二个参数是Guid,第三个参数是列集
我希望这能帮助那些也在这方面苦苦挣扎的人。:) 请添加完整测试和完整代码调用,我想知道您的guid是否相同。我认为
ColumnSet
应该是公共的,分配应该是=
而不是=>
Sxntk:编辑代码OrganizationServiceMock
是一个全局变量?不。是本地的。我忘了复制变量。在设置期望值ioOrganizationService=MockRepository.GenerateMock()之前,应该声明mock代码>如果您只想忽略所有可以使用的输入参数。IgnoreArguments()