我想要一个第一次返回0的模拟,然后在任何时候调用该方法时返回1。问题是如果该方法被调用4次,我必须写:mock.SetupSequence(x=>x.GetNumber()).Returns(0).Returns(1).Returns(1).Returns(1);否则,该方法返回null。有没有办法写成,在初始调用之后,该方法返回1? 最佳答案 最干净的方法是创建一个Queue并通过.DequeueReturns的方法.Returns(newQueue(new[]{0,1,1,1}).Dequeue);
我需要测试以下方法:CreateOutput(IWriterwriter){writer.Write(type);writer.Write(id);writer.Write(sender);//manymoreWrite()s...}我已经创建了一个Moq'dIWriter,我想确保Write()方法以正确的顺序被调用。我有以下测试代码:varmockWriter=newMock(MockBehavior.Strict);varsequence=newMockSequence();mockWriter.InSequence(sequence).Setup(x=>x.Write(expe
我需要测试以下方法:CreateOutput(IWriterwriter){writer.Write(type);writer.Write(id);writer.Write(sender);//manymoreWrite()s...}我已经创建了一个Moq'dIWriter,我想确保Write()方法以正确的顺序被调用。我有以下测试代码:varmockWriter=newMock(MockBehavior.Strict);varsequence=newMockSequence();mockWriter.InSequence(sequence).Setup(x=>x.Write(expe
我使用RhinoMocks已经有一段时间了,但才刚刚开始研究起订量。我遇到了这个非常基本的问题,令我惊讶的是这并不是开箱即用的。假设我有以下类定义:publicclassFoo{privateIBar_bar;publicFoo(IBarbar){_bar=bar;}..}现在我有一个测试,我需要模拟发送到Foo的IBar。在RhinoMocks中,我会像下面这样简单地做,它会很好用:varmock=MockRepository.GenerateMock();varfoo=newFoo(mock);但是,在Moq中,这似乎不是以同样的方式工作。我正在做如下:varmock=newMoc
我使用RhinoMocks已经有一段时间了,但才刚刚开始研究起订量。我遇到了这个非常基本的问题,令我惊讶的是这并不是开箱即用的。假设我有以下类定义:publicclassFoo{privateIBar_bar;publicFoo(IBarbar){_bar=bar;}..}现在我有一个测试,我需要模拟发送到Foo的IBar。在RhinoMocks中,我会像下面这样简单地做,它会很好用:varmock=MockRepository.GenerateMock();varfoo=newFoo(mock);但是,在Moq中,这似乎不是以同样的方式工作。我正在做如下:varmock=newMoc
我对单元测试和模拟非常陌生!我正在尝试编写一些单元测试,涵盖一些与数据存储交互的代码。数据访问由IRepository封装:interfaceIRepository{....IEnumerableFindBy(Expression>predicate);....}我尝试使用IRepository的具体IoC实现来测试的代码如下所示:publicclassSignupLogic{privateRepositoryrepo=newRepository();publicvoidAddNewCompany(CompanytoAdd){CompanyexistingCompany=this.re
我对单元测试和模拟非常陌生!我正在尝试编写一些单元测试,涵盖一些与数据存储交互的代码。数据访问由IRepository封装:interfaceIRepository{....IEnumerableFindBy(Expression>predicate);....}我尝试使用IRepository的具体IoC实现来测试的代码如下所示:publicclassSignupLogic{privateRepositoryrepo=newRepository();publicvoidAddNewCompany(CompanytoAdd){CompanyexistingCompany=this.re
我想我可能对Moq回调方法的语法有点困惑。当我尝试做这样的事情时:IFilterfilter=newFilter();Listobjects=newList{newFoo(),newFoo()};IQueryablemyFilteredFoos=null;mockObject.Setup(m=>m.GetByFilter(It.IsAny())).Callback((IFilterfilter)=>myFilteredFoos=filter.FilterCollection(objects)).Returns(myFilteredFoos.Cast());这会引发异常,因为myFilt
我想我可能对Moq回调方法的语法有点困惑。当我尝试做这样的事情时:IFilterfilter=newFilter();Listobjects=newList{newFoo(),newFoo()};IQueryablemyFilteredFoos=null;mockObject.Setup(m=>m.GetByFilter(It.IsAny())).Callback((IFilterfilter)=>myFilteredFoos=filter.FilterCollection(objects)).Returns(myFilteredFoos.Cast());这会引发异常,因为myFilt
我正在开发WebAPI,我想出的其中一项测试是,如果客户端使用物理测试ID(物理测试是我正在寻找的资源)进行GET操作,并且该物理测试未找到,WebAPI应返回404状态。现在,我正在使用最小起订量框架进行测试,并且我有以下代码:[TestMethod]publicvoidthen_if_physical_test_not_found_return_not_found_status(){varunitOfWork=newMock();varrepository=newMock>();repository.Setup(r=>r.FindById(It.IsAny())).Returns(