SimulateanupdatemethodthatreturnsvoidusingMoq在我的测试中,我将List定义为数据,其中包含一些记录。我想设置一个moq方法Update,这个方法接收用户id和要更新的字符串。然后我得到IUser并更新属性LastName我试过这个:namespaceTests.UnitTests{[TestClass]publicclassUsersTest{publicIUsersMockUsersRepo;只读模拟_mockUserRepo=newMock();私有列表_users=newList();[TestInitialize()]publicvoidMyTestInitialize(){_users=newList{newUser{Id=1,Firsname="A",Lastname="AA",IsValid=true},newUser{Id=1,Firsname="B",姓氏="BB",IsValid=true}};模拟mockUserRepository=newMock();_mockUserRepo.Setup(mr=>mr.Update(It.IsAny(),It.IsAny())).Returns(???);MockUsersRepo=_mockUserRepo.Object;}[TestMethod]publicvoidUpdate(){//Usethemockhere}}}但我得到这个错误:无法解析返回符号你有ID吗?用户类:IUser{publicintId{get;放;}publicstringFirsname{get;放;}publicstring姓{get;放;}publicboolIsValid{得到;放;}}interfaceIUser{intId{get;放;}string名字{get;放;}string姓氏{get;放;}boolIsValid{得到;放;}}接口IAction{ListGetList(boolisActive);voidUpdate(intid,stringlastname)}classAction:IAction{publicIUserGetById(intid){//....}publicvoidUpdate(intid,stringlastname){varuserToUpdate=GetById(id);userToUpdate.LastName=姓氏;//....}}如果你只是想验证调用了这个方法,你应该使用Verifiable()方法_mockUserRepository.Setup(mr=>mr.Update(It.IsAny(),It.IsAny())).Verifiable();如果您还想对这些参数执行某些操作,请先使用Callback()。_mockUserRepository.Setup(mr=>mr.Update(It.IsAny(),It.IsAny())).Callback((intid,stringlastName)=>{//dosomething}).Verifiable();更新如果你返回一个bool值,你应该如何模拟它。以上就是C#学习教程:模拟一个使用Moq返回void的update方法分享全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—_mockUserRepository.Setup(mr=>mr.Update(It.IsAny(),It.IsAny()))。返回(真);模拟_mockUserRepository=newMock();_mockUserRepository.Setup(mr=>mr.Update(It.IsAny(),It.IsAny())).Callback((intid,stringname)=>{//你的回调方法在这里});//检查方法被调用了多少次_mockUserRepository.Verify(mr=>mr.Update(It.IsAny(),It.IsAny()),Times.Once());本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
