jjzjj

c# - 如何验证是否调用了两种方法中的一种?

我正在使用Moq来验证是否在我的单元测试中调用了一个方法。在这种特定情况下,我想测试被测方法是否通过log4net记录错误。问题是,这可以通过调用log.Error或log.ErrorFormat来完成。两者都可以。我如何验证这一点?我只知道如何验证他们都被调用了。varlogMock=newMock();varmyClass=newMyClass(logMock.Object);myClass.MyMethod();logMock.Verify(log=>log.Error(It.IsAny()));logMock.Verify(log=>log.ErrorFormat(It.IsA

c# - Moq - 存储库中的 Linq 表达式 - 在设置中指定表达式

我的界面上有一个方法,如下所示:TGetSingle(Expression>criteria);我正在尝试模拟这样的设置(我意识到这行不通):_mockUserRepository=newMock>();_mockUserRepository.Setup(c=>c.GetSingle(x=>x.EmailAddress=="a@b.com")).Returns(newUser{EmailAddress="a@b.com"});我意识到我向设置传递了错误的参数。看完thisanswer我可以通过传递表达式来让它工作,就像这样:_mockUserRepository.Setup(c=>c.

c# - 用最小起订量模拟 MediatR 3

我们最近开始使用MediatR来整理Controller操作,因为我们重构了面向大型客户的门户并将其全部转换为C#。作为其中的一部分,我们也在增加我们的单元测试覆盖率,但我在尝试模拟MediatR本身时遇到了问题。该命令做了很多事情来启动一个过程,其中一部分是发送通知。通知本身由其自己的处理程序处理,因此将接受其自己的单元测试,因此我想模拟MediatR,以便this.mediator.Send(message)调用不会真正执行任何事物。处理程序确实返回一个对象,但我们在此上下文中不关心它,因此出于所有意图和目的,我们将其视为void返回。我只想验证Send作为测试的一部分被调用了一次

c# - Moq.Mock.Verify() 是否使用身份或.Equals() 比较参数?

像这样的命令varmockObj=newMock()varanotherObj=Utilities.DoStuff();//sometests...mockObj.Verify(foo=>foo.someMethod(anotherObj));Moq是使用身份比较还是使用.Equals()来确定someMethod()是否曾被anotherObj调用为范围?换句话说,我指示为foo.someMethod()的参数的对象是否必须与之前为验证调用的someMethod()完全相同的对象传递,还是只需要等于anotherObj? 最佳答案

c# - 最小起订量如何确定使用包含特定值的列表调用的方法

这个问题在这里已经有了答案:MOQ-checkamethodiscalledwithonlyspecificparameters(3个答案)关闭9年前。你好,我有一个具有以下签名的方法:publicvoidGeneratePaymentAdvise(IListpaymentIds)这是由另一种方法调用的:publicvoidUpdatePaymentStatus(IListpaymentIds,IPaymentLogicpaymentLogic){...paymentLogic.GeneratePaymentStatus(paymentIds);...}所以在单元测试中我想确保它被调用

c# - 具有 protected setter 的最小起订量属性

我要Moq下一个对象:abstractclassFoo{publicstringBar{get;protectedset;}}所以newMock().Bar返回"Blah".我该怎么做?fooMock.SetupGet(s=>s.Bar).Returns("Blah");抛出Failure:System.NotSupportedException:Invalidsetuponanon-virtualmember:s=>s.Date和fooMock.Protected().SetupGet("Bar").Returns("Blah");抛出Tospecifyasetupforpublic

c# - 使用 Moq 来 stub 接口(interface)方法

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtomockamethodthatreturnsanintwithMOQ这是我的界面:publicinterfaceICalenderService{DateTimeAdjust(DateTimedateToAdjust,BusinessDayConventionconvention,ListholidayCities);}我做了一些研究,看起来你可以很容易地模拟这个,但我想用Moq把它stub,这样我就可以把stub传递给我的其他类构造函数,让stub返回任何DateTime我想要它的Adjust方法

c# - 模拟异步任务

我在使用MicrosoftBCL的.NET4.0上使用Moq进行单元测试时遇到以下情况TaskmockTask=newTask(()=>newMyClass());uploadHelper.Setup().Returns(mockTask);Task.WaitAll(mockTask);我面临的问题是Task.WaitAll(mockTask)只是阻塞并且永远不会返回。我在这里做错了什么?编辑请注意,mockTask在我的上下文中是异步的。 最佳答案 您的任务尚未开始!只需使用:TaskmockTask=Task.FromResul

c# - 如何最小化 Entity Framework SaveChangesAsync?

MockdbContext;[TestFixtureSetUp]publicvoidSetupDbContext(){dbContext=newMock();dbContext.Setup(c=>c.SaveChanges()).Verifiable();dbContext.Setup(c=>c.SaveChangesAsync()).Verifiable();dbContext.Setup(c=>c.Customers.Add(It.IsAny())).Returns(It.IsAny()).Verifiable();}[Test]publicasyncTaskAddCustomer

c# - 使用 Moq、Silverlight 和 NUnit 进行单元测试

我正在尝试对Silverlight3项目进行单元测试。我正在使用:Moq.Silverlight(3.0.308.2)NUnitSilverlight(http://www.jeff.wilcox.name/2009/01/nunit-and-silverlight/)当我编写不使用Moq的测试时,它会正常工作。当我在测试之外使用Moq时,Moq可以正常工作。(我模拟了一个界面并在按钮处理程序中进行了验证作为证明。)但是当我运行一个使用Moq的单元测试时,我总是得到这个:System.IO.FileNotFoundException:Couldnotloadfileorassembly