jjzjj

c# - 最小起订量和互操作类型 : works in VS2012, 在 VS2010 中失败?

我有一个包含大约500个单元测试的.NET库项目。所有这些测试在VisualStudio2012中运行良好。但是,我的一些测试在VisualStudio2010中失败。在这些失败的测试中,我使用起订量模拟来自Microsoft.Office.Interop.Excel的几种互操作类型.尝试访问这些模拟互操作类型时,测试立即失败:Error:Missingmethod'instanceclassMicrosoft.Office.Interop.Excel.Range[ExcelAddIn.Core]Microsoft.Office.Interop.Excel.ListRow::get_R

c# - 使用 Moq 通过任意键和值设置任意

在问题的最后:UsingMoqtosetindexersinC#,有人强调了我也遇到的问题。但他们没有找到解决方案。具体来说,我正在尝试使用通用It.IsAny作为键的匹配器并通过It.IsAny设置值.当通过索引访问并设置值时,它从不匹配并且不访问我的回调方法。所以我的单元测试失败了。varstateTable=newHashTable;varhttpSession=newMock();//worksviahttpSession.Add(key,value);httpSession.Setup(x=>x.Add(It.IsAny(),It.IsAny())).Callback((st

c# - Moq Setup 不工作,原来的方法仍然被调用

当我尝试使用Moq时它仍然调用的原始方法。这是我的代码:varmockedBetRepository=newMock(newFakeSiteContext());mockedBetRepository.CallBase=true;Betbet=newBet();mockedBetRepository.Setup(m=>m.UpdateBet(bet)).Returns(bet);betRepository=mockedBetRepository.Object;稍后在代码中,调用了betRepository.UpdateBet(bet),但调用的不是我模拟的方法,而是类的方法:publi

c# - 如何用静态方法最小化静态类(UnitOfWork 案例)?

我有这些类(class):publicstaticclassUnitOfWorkSS{publicstaticIUnitOfWorkBegin(){returnIoC.Resolve();}}publicclassPostService{using(IUnitOfWorkunitOfWork=UnitOfWorkSS.Begin()){//don'tforgettosanitizehtmlcontenthtmlContent=_htmlSanitizer.Sanitize(htmlContent);IPostpost=_factory.CreatePost(byUser,title,h

c# - 如何使用 Moq 提供方法实现?

我有一个包含一些方法的接口(interface)。我有这个接口(interface)的默认实现。出于集成测试的目的,我想创建一个模拟实现,如果调用这些方法之一,它返回我的自定义值,否则回退到默认实现。是否可以使用Moq,还是我应该自己创建一个简单的stub?例子IInterfacedefault=newDefaultImplementation();varmock=newMock();mock.Setup(i=>i.Method(It.IsAny())).Calls(p=>p==0?return5:default.Method(p););TheMethodITest(mock.Obje

c# - 如何模拟返回 Task<IList<>> 的方法?

我正在尝试对返回任务的方法进行单元测试>:voidMain(){varmockRepo=newMock();mockRepo.Setup(x=>x.GetAll()).Returns(newList(){newMyModel{Name="Test"}});//worksmockRepo.Setup(x=>x.GetAllAsync()).Returns(Task.FromResult(newList(){newMyModel{Name="Test"}}));//errorvarresult=mockRepo.Object.GetAll();result.Dump();}publicin

c# - 通过安装程序设置模拟属性会导致 'Expression is not a method invocation'

我有下面的代码,其中我的Mock接口(interface)有一个Recorder属性,它是一个类。然后我尝试在该类上设置一个属性,但我得到了一个Expressionisnotamethodinvocation错误。你能帮忙吗?错误是在运行时尝试设置枚举属性时出现的。它会抛出一个带有以下堆栈跟踪的ArgumentException:atMoq.ExpressionExtensions.ToMethodCall(LambdaExpressionexpression)atMoq.Mock.c__DisplayClass1c`2.b__1b()atMoq.PexProtector.Invoke

c# - 使用最小起订量模拟 HttpContext 进行单元测试

这个问题在这里已经有了答案:HowdoImocktheHttpContextinASP.NETMVCusingMoq?(6个答案)关闭8年前。我需要一个HttpContext的模拟来进行单元测试。但我正在为此苦苦挣扎。我正在创建一个方法,该方法将通过SessionIdManager以编程方式更改sessionId。并且SessionIdManager需要HttpContext而不是HttpContextBase。但是我找不到任何模拟HttpContext的例子。那里的所有示例都只是为了制作HttpContextBase。我在下面试过,但它们没有用HttpContexthttpConte

c# - WebApi 2 中的单元测试 IAuthenticationFilter

我正在尝试对我为WebApi2项目编写的基本身份验证过滤器进行单元测试,但我无法模拟OnAuthentication调用中所需的HttpAuthenticationContext对象。publicoverridevoidOnAuthentication(HttpAuthenticationContextcontext){base.OnAuthentication(context);varauthHeader=context.Request.Headers.Authorization;...therestofmycodehere}我试图为模拟设置的实现行是设置authHeader变量的行

c# - 使用最小起订量创建具有自动填充属性的模拟?

我有一个我想模拟的对象(比如HttpContext或其他对象)。有时,在某些单元测试中,我不得不模拟大量依赖项,并适本地设置它们的依赖项和值。下面有一些模拟httpcontext和另一个类的示例代码:publicstaticHttpContextBaseFakeHttpContext(){varcontext=newMock();varfiles=newMock();varrequest=newMock();varresponse=newMock();varsession=newMock();varserver=newMock();varuser=newMock();varidenti