草庐IT

c# - Moq - mock.Raise 应该在没有设置的情况下在测试单元中引发事件

我有一个演示器类,它附加了一个注入(inject)View的事件。现在我想测试演示者对事件的正确react。这是View界面IView:publicinterfaceIView{eventEventHandlerMyEvent;voidUpdateView(stringtest);}这是实现IView的View:publicpartialclassMyView:IView{publiceventEventHandlerMyEvent;publicMyView(){this.combo.SelectedIndexChanged+=this.OnSelectedIndexChanged;}

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)框架。

c# - Moq - 如何验证属性值是否通过 setter 设置

考虑这个类:publicclassContent{publicvirtualboolIsCheckedOut{get;privateset;}publicvirtualvoidCheckOut(){IsCheckedOut=true;}publicvirtualvoidCheckIn(){//DoNothingfornowasdemonstratingfalsepositivetest.}}Checkin方法是有意为空的。现在我有几个测试方法来验证调用每个方法的状态。[TestMethod]publicvoidCheckOutSetsCheckedOutStatusToTrue(){C

c# - Moq - 如何验证属性值是否通过 setter 设置

考虑这个类:publicclassContent{publicvirtualboolIsCheckedOut{get;privateset;}publicvirtualvoidCheckOut(){IsCheckedOut=true;}publicvirtualvoidCheckIn(){//DoNothingfornowasdemonstratingfalsepositivetest.}}Checkin方法是有意为空的。现在我有几个测试方法来验证调用每个方法的状态。[TestMethod]publicvoidCheckOutSetsCheckedOutStatusToTrue(){C

c# - 在不指定 T 的情况下模拟 Moq 中的泛型方法

我有一个接口(interface),方法如下:publicinterfaceIRepo{IAReserve();}我想模拟包含此方法的类,而不必为它可能用于的每个类型指定设置方法。理想情况下,我只是希望它返回newmock.Object.我如何实现这一目标?看来我的解释不清楚。这是一个示例-当我指定T(此处为字符串)时,这现在是可能的:[TestMethod]publicvoidExampleTest(){varmock=newMock();mock.Setup(pa=>pa.Reserve()).Returns(newMock>().Object);}我想实现的是这样的:[TestM

c# - 在不指定 T 的情况下模拟 Moq 中的泛型方法

我有一个接口(interface),方法如下:publicinterfaceIRepo{IAReserve();}我想模拟包含此方法的类,而不必为它可能用于的每个类型指定设置方法。理想情况下,我只是希望它返回newmock.Object.我如何实现这一目标?看来我的解释不清楚。这是一个示例-当我指定T(此处为字符串)时,这现在是可能的:[TestMethod]publicvoidExampleTest(){varmock=newMock();mock.Setup(pa=>pa.Reserve()).Returns(newMock>().Object);}我想实现的是这样的:[TestM

c# - Moq 中的 SetupSequence

我想要一个第一次返回0的模拟,然后在任何时候调用该方法时返回1。问题是如果该方法被调用4次,我必须写:mock.SetupSequence(x=>x.GetNumber()).Returns(0).Returns(1).Returns(1).Returns(1);否则,该方法返回null。有没有办法写成,在初始调用之后,该方法返回1? 最佳答案 最干净的方法是创建一个Queue并通过.DequeueReturns的方法.Returns(newQueue(new[]{0,1,1,1}).Dequeue);