草庐IT

c# - 我如何模拟 IQueryable<T>

我正在创建一个公开IQueryable的存储库。为我的单元测试模拟这个的最佳方法是什么?因为我对其余的模拟对象使用RhinoMocks,所以我尝试执行以下操作:IQueryableQueryObject=MockRepository.GenerateStub>();虽然这不起作用所以我尝试这样做:IQueryableQueryObject=(newList{newMyObject()}).AsQueryable();有没有更好的方法来做到这一点,或者是否有任何其他模拟框架内置了对IQueryable的支持?我的存储库界面如下所示:publicinterfaceIRepositorywh

c# - 我如何模拟 IQueryable<T>

我正在创建一个公开IQueryable的存储库。为我的单元测试模拟这个的最佳方法是什么?因为我对其余的模拟对象使用RhinoMocks,所以我尝试执行以下操作:IQueryableQueryObject=MockRepository.GenerateStub>();虽然这不起作用所以我尝试这样做:IQueryableQueryObject=(newList{newMyObject()}).AsQueryable();有没有更好的方法来做到这一点,或者是否有任何其他模拟框架内置了对IQueryable的支持?我的存储库界面如下所示:publicinterfaceIRepositorywh

c# - 是否建议模拟具体类(class)?

mockingframework网站给出的例子大部分是模拟接口(interface)。比方说我目前正在使用的NSubstitute,他们所有的模拟示例都是模拟接口(interface)。但实际上,我看到了一些开发人员模拟的具体类。是否建议模拟具体类? 最佳答案 理论上模拟一个具体的类是绝对没有问题的;我们正在针对逻辑接口(interface)(而不是关键字interface)进行测试,并且该逻辑接口(interface)是由class还是interface。在实践中,.NET/C#使这有点问题。正如您提到的.NET模拟框架,我假设您

c# - 是否建议模拟具体类(class)?

mockingframework网站给出的例子大部分是模拟接口(interface)。比方说我目前正在使用的NSubstitute,他们所有的模拟示例都是模拟接口(interface)。但实际上,我看到了一些开发人员模拟的具体类。是否建议模拟具体类? 最佳答案 理论上模拟一个具体的类是绝对没有问题的;我们正在针对逻辑接口(interface)(而不是关键字interface)进行测试,并且该逻辑接口(interface)是由class还是interface。在实践中,.NET/C#使这有点问题。正如您提到的.NET模拟框架,我假设您

c# - 最小起订量:设置一个模拟方法以在第一次调用时失败,在第二次调用时成功

使用Moq模拟第一次调用会抛出异常,然后第二次调用成功的方法的最简洁方法是什么? 最佳答案 我会利用Callback并增加一个计数器来确定是否从Callback中抛出异常。[Test]publicvoidTestMe(){varcount=0;varmock=newMock();mock.Setup(a=>a.MyMethod()).Callback(()=>{count++;if(count==1)thrownewApplicationException();});Assert.Throws(typeof(ApplicationE

c# - 最小起订量:设置一个模拟方法以在第一次调用时失败,在第二次调用时成功

使用Moq模拟第一次调用会抛出异常,然后第二次调用成功的方法的最简洁方法是什么? 最佳答案 我会利用Callback并增加一个计数器来确定是否从Callback中抛出异常。[Test]publicvoidTestMe(){varcount=0;varmock=newMock();mock.Setup(a=>a.MyMethod()).Callback(()=>{count++;if(count==1)thrownewApplicationException();});Assert.Throws(typeof(ApplicationE

c# - 如何使用 Moq 模拟 SqlDataReader - 更新

我是最小起订量和设置模拟的新手,所以我需要一些帮助。如何使用Moq模拟SqlDataReader?更新经过进一步测试,这是我目前所拥有的:privateIDataReaderMockIDataReader(){varmoq=newMock();moq.Setup(x=>x.Read()).Returns(true);moq.Setup(x=>x.Read()).Returns(false);moq.SetupGet(x=>x["Char"]).Returns('C');returnmoq.Object;}privateclassTestData{publiccharValidChar{

c# - 如何使用 Moq 模拟 SqlDataReader - 更新

我是最小起订量和设置模拟的新手,所以我需要一些帮助。如何使用Moq模拟SqlDataReader?更新经过进一步测试,这是我目前所拥有的:privateIDataReaderMockIDataReader(){varmoq=newMock();moq.Setup(x=>x.Read()).Returns(true);moq.Setup(x=>x.Read()).Returns(false);moq.SetupGet(x=>x["Char"]).Returns('C');returnmoq.Object;}privateclassTestData{publiccharValidChar{

c# - 依赖注入(inject)和模拟框架之间的区别(Ninject vs RhinoMocks 或 Moq)

Ninject和RhinoMocks或Moq等模拟框架有什么区别?我用Google搜索了这个,但仍然不清楚。 最佳答案 Ninject是DependencyInjection对于.NET。RhinoMocks和Moq都是模拟框架。现在两者已经没有任何关系了。我真的很难理解这两者,所以我在这里尝试解释一下。依赖注入(inject):是一种控制反转的实现(姑且称之为)。你不要混淆两者。您正在控制从代码中创建对象。依赖项,例如IRepository不会由您的类/代码创建,而是由其他人注入(inject),即依赖项注入(inject)框架。

c# - 依赖注入(inject)和模拟框架之间的区别(Ninject vs RhinoMocks 或 Moq)

Ninject和RhinoMocks或Moq等模拟框架有什么区别?我用Google搜索了这个,但仍然不清楚。 最佳答案 Ninject是DependencyInjection对于.NET。RhinoMocks和Moq都是模拟框架。现在两者已经没有任何关系了。我真的很难理解这两者,所以我在这里尝试解释一下。依赖注入(inject):是一种控制反转的实现(姑且称之为)。你不要混淆两者。您正在控制从代码中创建对象。依赖项,例如IRepository不会由您的类/代码创建,而是由其他人注入(inject),即依赖项注入(inject)框架。