我正在使用Setup()方法来设置模拟接口(interface)实例的行为。我正在设置的方法(我们称它为DoSomething())接受一个类的实例(我们称该类为Foo)。Foofoo=//ExistingfooinstanceMockmock=newMock();mock.Setup(x=>x.DoSomething(foo)).Returns(1);我遇到的问题是,当我使用模拟时,它永远不会匹配设置,所以永远不会返回1。有人可以帮忙吗?Moq如何判断提供给setup方法的参数是否相等? 最佳答案 我的问题的答案是Moq使用.Eq
在新的ASPNETMVC应用程序中,您现在可以免费获得AspIdentity好东西。有一条无害的小线路“在此处插入您的电子邮件服务”。所以我做了:publicclassEmailService:IIdentityMessageService{privatestaticMy.Services.IEmailService_emailservice;publicEmailService(Insolvency.Services.IEmailServiceemailservice){_emailservice=emailservice;}publicTaskSendAsync(IdentityM
对访问ActiveDirectory的应用程序进行单元测试和/或模拟对AD的依赖性的最佳方法是什么?所有必需的类型,如DirectorySearcher和DirectoryEntry似乎都不容易模拟。我们有像FindByUserName()这样的方法,并且想要(单元)测试它们。 最佳答案 如果它们不可模拟(手头没有MSDN,所以我真的不能说),你总是可以在IDirectorySearcher和IDirectoryEntry后面抽象它们>并mock这些。通过这种方法,您可以根据自己的需要进行专门定制,从而简化API。
我正在查看一个非常强调单元测试的现代项目。根据古老的格言“面向对象编程中的每个问题都可以通过引入新的间接层来解决”,该项目采用了多层间接。副作用是相当多的代码如下所示:publicboolIsOverdraft){balanceProvider.IsOverdraft();}现在,由于强调单元测试和保持高代码覆盖率,每段代码都有针对它编写的单元测试。因此这个小方法将有三个单元测试。那些会检查:如果balanceProvider.IsOverdraft()返回true那么IsOverdraft应该返回true如果balanceProvider.IsOverdraft()返回false,那
这个问题在这里已经有了答案:WhatarethedifferencesbetweenmocksandstubsonRhinoMocks?(5个答案)关闭8年前。我最近对测试非常感兴趣,我现在正努力学习以尽可能最好的方式进行单元测试。我将NUnit与RhinoMocks一起使用。我也在Stackoverflow上阅读了很多内容,但未能找到我的问题的明确答案。我想知道的是,如果我有如下所示的方法,我应该模拟OfficeClass依赖项并测试GetAllOffices还是仅对依赖项使用stub并验证方法GetAllOffices已被调用并且我确实得到了办公室返回我对stub设置的预期?pub
我的界面上有一个方法,如下所示: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.
我正在努力养成编写单元测试的习惯,我以前写过一些,但它们通常都很基础......我想开始转向TDD,因为我想提高我的代码(设计和结构)的质量-减少耦合,同时希望减少滑入可测试构建的回归数量。我从一个相对简单的项目开始。生成的程序监视一个文件夹,然后对该文件夹中的文件进行操作。下面是从项目中提取的一些代码的典型示例:privatestringRestoreExtension(Stringfile){varunknownFile=Path.GetFileName(file);varignoreDir=Path.GetDirectoryName(file)+"\\Unknown";strin
我是MSTest(VisualStudio2010)的新手。有没有VS2010自带的集成mocking框架?或者是否有任何其他我可以使用的易于上手的好模拟框架? 最佳答案 VS2010没有附带模拟框架。但是您可以使用RhinoMocks(支持.NET2.0和3.5),或Moq(支持.NET3.5和.NET4)。两个框架都不错,但我更喜欢Moq,因为我觉得它更自然。它使用流畅的lambda语法,一旦你习惯了它,我就会觉得它非常干净。这两个框架都是开源的。如果您想要商业版,请选择Typemockisolator.这个框架几乎可以模拟任何
我要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
应该使用目标类的内置单元测试生成器(VS)还是我应该自己学习如何编写单元测试?这个“模拟”是什么东西?我一遍又一遍地听到它,但没有人关心给出一个好的解释。提前致谢。 最佳答案 您需要学习自己编写单元测试。从正确理解许多人在以下方面犯错误的术语开始,从右脚开始:单元测试:测试单个代码单元,非常小的原子测试。集成测试:测试集成在一起的多个代码单元,通过不同的层并确保它们正确使用彼此。这些应该在单元测试验证了各个单元独立工作之后完成。许多人错误地将这些称为单元测试。内置验证测试:通过部署和运行将以用户方式与其交互的测试来测试内置产品。也经