草庐IT

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);

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);

c# - 最小起订量文档在哪里?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。社区在去年审查了是否重新打开这个问题,并将其关闭:原始关闭原因未解决Improvethisquestion我在哪里可以找到最小起订量的综合文档?我只是从mock开始,我很难理解它。我已经通读了所有链接http://code.google.com/p/moq/wiki/QuickStart但似乎找不到教程或详细介绍。我也简要地看过RhinoMocks,但发现它非常困惑。是的-我读了StephenWalthe

c# - 最小起订量文档在哪里?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。社区在去年审查了是否重新打开这个问题,并将其关闭:原始关闭原因未解决Improvethisquestion我在哪里可以找到最小起订量的综合文档?我只是从mock开始,我很难理解它。我已经通读了所有链接http://code.google.com/p/moq/wiki/QuickStart但似乎找不到教程或详细介绍。我也简要地看过RhinoMocks,但发现它非常困惑。是的-我读了StephenWalthe

c# - 如何在没有接口(interface)的情况下模拟类?

我正在Windows7中使用C#开发.NET4.0。我想使用mock测试一些方法之间的通信。唯一的问题是我想在不实现接口(interface)的情况下这样做。那可能吗?我刚刚阅读了很多关于模拟对象的主题和一些教程,但它们都用于模拟接口(interface),而不是模拟类。我尝试使用Rhino和Moq框架。 最佳答案 只需将您需要伪造的任何方法标记为virtual(而不是私有(private)的)。然后您将能够创建一个可以覆盖该方法的假对象。如果您使用newMock并且您没有无参数构造函数,那么您可以将参数作为上述调用的参数传递,因为

c# - 如何在没有接口(interface)的情况下模拟类?

我正在Windows7中使用C#开发.NET4.0。我想使用mock测试一些方法之间的通信。唯一的问题是我想在不实现接口(interface)的情况下这样做。那可能吗?我刚刚阅读了很多关于模拟对象的主题和一些教程,但它们都用于模拟接口(interface),而不是模拟类。我尝试使用Rhino和Moq框架。 最佳答案 只需将您需要伪造的任何方法标记为virtual(而不是私有(private)的)。然后您将能够创建一个可以覆盖该方法的假对象。如果您使用newMock并且您没有无参数构造函数,那么您可以将参数作为上述调用的参数传递,因为

c# - 将 Moq 模拟对象传递给构造函数

我使用RhinoMocks已经有一段时间了,但才刚刚开始研究起订量。我遇到了这个非常基本的问题,令我惊讶的是这并不是开箱即用的。假设我有以下类定义:publicclassFoo{privateIBar_bar;publicFoo(IBarbar){_bar=bar;}..}现在我有一个测试,我需要模拟发送到Foo的IBar。在RhinoMocks中,我会像下面这样简单地做,它会很好用:varmock=MockRepository.GenerateMock();varfoo=newFoo(mock);但是,在Moq中,这似乎不是以同样的方式工作。我正在做如下:varmock=newMoc

c# - 将 Moq 模拟对象传递给构造函数

我使用RhinoMocks已经有一段时间了,但才刚刚开始研究起订量。我遇到了这个非常基本的问题,令我惊讶的是这并不是开箱即用的。假设我有以下类定义:publicclassFoo{privateIBar_bar;publicFoo(IBarbar){_bar=bar;}..}现在我有一个测试,我需要模拟发送到Foo的IBar。在RhinoMocks中,我会像下面这样简单地做,它会很好用:varmock=MockRepository.GenerateMock();varfoo=newFoo(mock);但是,在Moq中,这似乎不是以同样的方式工作。我正在做如下:varmock=newMoc

c# - SetupSet() 已过时。代替什么?

假设我想使用Moq在setter上创建回调,以将设置的属性存储在我自己的字段中供以后使用。(人为的例子-但它已经到了问题的重点。)我可以做这样的事情:myMock.SetupSet(x=>x.MyProperty).Callback(value=>myLocalVariable=value);而且效果很好。但是,根据Intellisense,SetupSet已过时。但它没有说明应该使用什么作为替代方案。我知道最小起订量提供SetupProperty,它将使用支持字段Autowiring属性。但这不是我要找的。我想将设置值捕获到我自己的变量中。我应该如何使用非过时的方法来做到这一点?

c# - SetupSet() 已过时。代替什么?

假设我想使用Moq在setter上创建回调,以将设置的属性存储在我自己的字段中供以后使用。(人为的例子-但它已经到了问题的重点。)我可以做这样的事情:myMock.SetupSet(x=>x.MyProperty).Callback(value=>myLocalVariable=value);而且效果很好。但是,根据Intellisense,SetupSet已过时。但它没有说明应该使用什么作为替代方案。我知道最小起订量提供SetupProperty,它将使用支持字段Autowiring属性。但这不是我要找的。我想将设置值捕获到我自己的变量中。我应该如何使用非过时的方法来做到这一点?