尝试在我的ASP.NETMVC3网络应用程序中进行一些Controller单元测试。我的测试是这样的:[TestMethod]publicvoidEnsure_CreateReviewHttpPostAction_RedirectsAppropriately(){//Arrange.varnewReview=CreateMockReview();//Act.varresult=_controller.Create(newReview)asRedirectResult;//Assert.Assert.IsNotNull(result,"RedirectResultwasnotreturn
我有这个方法:publicasyncTaskDeleteUserAsync(GuiduserId){using(varcontext=this.contextFactory.Create()){varuser=awaitcontext.Users.FirstOrDefaultAsync(x=>x.Id.Equals(userId));if(user==null){thrownewException("Userdoesn'texist");}context.Users.Remove(user);awaitcontext.SaveChangesAsync();}}我想测试一下。所以我创建了
我目前正在编写单元测试并使用Moq框架模拟依赖项。为此,我创建了一个Mock,如下所示:MocktraceProviderMock=newMock();traceProviderMock.Setup(x=>x.GetTraceContext(It.IsAny())).Returns("test");ITraceProvidertraceObj=traceProviderMock.Object;但是稍后我想稍微修改模拟的行为,所以我再次调用Mock对象上的Setup:traceProviderMock.Setup(x=>x.GetTracer(It.IsAny())).Returns("
我最近注意到,您可以使用Moq对抽象基类进行单元测试,而不是在测试中创建一个实现抽象基类的虚拟类。参见Howtousemoqtotestaconcretemethodinanabstractclass?例如。你可以这样做:publicabstractclassMyAbstractClass{publicvirtualvoidMyMethod(){//...}}[Test]publicvoidMyMethodTest(){//ArrangeMockmock=newMock(){CallBase=true};//Actmock.Object.MyMethod();//Assert//...
我有一个使用out参数的函数。我如何模拟此功能?我的职能是:GetProperties(outstringname,outstringpath,outstringextension);在我的原始代码中,我是这样做的:stringName;stringPath;stringExtension;MyObject.GetProperties(outName,outPath,outExtension);现在,我该如何模拟它? 最佳答案 你应该在调用方法之前分配变量的值:stringName="name";stringPath="path";
我正在使用moq.dll当我模拟一个类(所有IRepository接口(interface))时,我使用这行代码intstate=5;varrep=newMock();rep.Setup(x=>x.SaveState(state)).Returns(true);IRepositoryrepository=rep.Object;但在这种情况下,我模拟了存储库类中的所有函数。然后将类库中的所有方法替换为Mockdll的方法设置我想使用类存储库(真实类)中定义的所有方法并只模拟一个函数(SaveState)我该怎么做?可能吗? 最佳答案
我有一个这样的界面:publicinterfaceIMyInterface{eventEventHandlerTriggered;voidTrigger();}我的单元测试中有一个这样的模拟对象:privateMock_mockedObject=newMock();我想做这样的事情://pseudo-code_mockedObject.Setup(i=>i.Trigger()).Raise(i=>i.Triggered+=null,this,true);但是,返回的ISetup界面上似乎没有Raise可用。我该怎么做? 最佳答案 您
过去,当我想模拟一个抽象类时,我只是在扩展抽象类的代码中创建一个模拟类,然后在我的单元测试中使用该类...publicabstractclassMyConverter:IValueConverter{publicabstractObjectConvert(...);publicvirtualObjectConvertBack(...){...}}privatesealedclassMockedConverter:MyConverter{...}[TestMethod]publicvoidTestMethod1(){varmock=newMockedConverter();varexpe
我正在尝试为IServiceProvider创建一个Mock(使用Moq),以便我可以测试我的存储库类:publicclassApiResourceRepository:IApiResourceRepository{privatereadonlyIServiceProvider_serviceProvider;publicApiResourceRepository(IServiceProviderserviceProvider){_serviceProvider=serviceProvider;_dbSettings=dbSettings;}publicasyncTaskGet(int
我正在尝试模拟IMemoryCache最小起订量。我收到此错误:Anexceptionoftype'System.NotSupportedException'occurredinMoq.dllbutwasnothandledinusercodeAdditionalinformation:Expressionreferencesamethodthatdoesnotbelongtothemockedobject:x=>x.Get(It.IsAny())我的模拟代码:namespaceIag.Services.SupplierApiTests.Mocks{publicstaticclassM