我目前正在尝试对通过EntityFramework运行的查询运行一些单元测试。查询本身在实时版本上运行没有任何问题,但单元测试总是失败。我已将此范围缩小到我对DbFunctions.TruncateTime的使用,但我不知道有什么方法可以让单元测试反射(reflect)实时服务器上发生的情况。这是我正在使用的方法:publicSystem.Data.DataTableGetLinkedUsers(intparentUserId){vartoday=DateTime.Now.Date;varquery=fromupinDB.par_UserPlacementwhereup.MentorI
使用Moq,我希望能够验证传递给模拟方法调用的参数是否满足某些条件。在这种情况下,我想检查传递给模拟方法的列表是否具有特定大小:varmockSomeRepository=newMock();mockSomeRepository.Setup(m=>m.Write(It.IsAny>())).Verifiable();varmainClass=newMainClass(mockSomeRepository.Object);ListsomeList=GetListWith25Items();mainClass.DoRepositoryWrite(someList);//callsSomeR
我需要以这样的方式模拟HttpResponseBase.ApplyAppPathModifier,调用时参数ApplyAppPathModifier会由模拟自动返回。我有以下代码:varhttpResponseBase=newMock();httpResponseBase.Setup(hrb=>hrb.ApplyAppPathModifier(/*capturethisparam*/)).Returns(/*returnithere*/);有什么想法吗?编辑:在Moq文档的第一页找到解决方案(http://code.google.com/p/moq/wiki/QuickStart):v
以下使用EF4.2的测试现在引发EF4.3的下一个异常System.ArgumentException:Typetomockmustbeaninterfaceoranabstractornon-sealedclass.---->System.TypeLoadException:Method'CallValidateEntity'ontype'Castle.Proxies.DbContext43Proxy'fromassembly'DynamicProxyGenAssembly2,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null'is
目前我有:[Test]publicvoidDrawDrawsAllScreensInTheReverseOrderOfTheStack(){//Arrange.varscreenMockOne=newMock();varscreenMockTwo=newMock();varscreens=newList();screens.Add(screenMockOne.Object);screens.Add(screenMockTwo.Object);varstackOfScreensMock=newMock();stackOfScreensMock.Setup(s=>s.ToArray()).
是否可以使用Moq来表示一个方法接受以“ABC”开头的字符串。举个例子:logger.Verify(x=>x.WriteData(Moq.It.IsAny().StartsWith("ABC")),Times.Exactly(3));那不会编译,但希望它能说明我的观点 最佳答案 尝试:logger.Verify(x=>x.WriteData(Moq.It.Is(str=>str.StartsWith("ABC"))),Times.Exactly(3));你可以看到It.Is的另一个例子://matchingFunc,lazyeval
好的,我有一个这样的业务逻辑类:注意:就上下文而言,供应商简介是描述PDF文档“下载”的简单实体。//////Housesbusinesslevelfunctionsfordealingwithvendorbriefs.///publicclassVendorBriefController:IVendorBriefController{//////VendorbriefcontrollerrequiresaninstanceofIVendorBriefRepository.///IVendorBriefRepository_vendorBriefRepository;//////Ini
varstorageManager=newMock();storageManager.Setup(e=>e.Add(It.IsAny()));Add()方法需要一个具有FirstName属性的UserMetaData对象。我想确保已经传递了名字为“FirstName1”的UserMetaData类型的对象。 最佳答案 您可以使用Verify.示例:验证Add从未用UserMetaData调用过与FirstName!="FirstName1":storageManager.Verify(e=>e.Add(It.Is(d=>d.Firs
我得到了一个通过参数获取委托(delegate)的类。此类调用该委托(delegate),我想用最小起订量对其进行单元测试。我如何验证此方法已被调用?示例类:publicdelegatevoidFoo(intnumber);publicclassA{inta=5;publicA(FoomyFoo){myFoo(a);}}我想检查是否调用了Foo。谢谢。 最佳答案 截至thiscommitMoq现在支持模拟委托(delegate),对于您的情况,您可以这样做:varfooMock=newMock();vara=newA(fooMock
在我的工作中,我们使用Moq进行模拟,使用Unity进行IOC容器。我对此还很陌生,工作中没有太多资源可以帮助我确定我应该使用的最佳实践。现在,我有一组存储库接口(interface)(例如:IRepository1、IRepository2...IRepository4),特定进程需要使用它们来完成其工作。在实际代码中,我可以通过使用IOC容器和RegisterType()方法来确定所有IRepository对象。我正在尝试找出能够测试需要上述4个存储库的方法的最佳方法。我在想我可以注册一个新的UnityIOC容器实例,并为每个传入Mock.Object值的模拟对象在容器上调用Reg