- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有类似这样的测试代码:
Public Interface IDoSomething
Function DoSomething(index As Integer) As Integer
End Interface
<Test()>
Public Sub ShouldDoSomething()
Dim myMock As IDoSomething = MockRepository.GenerateMock(Of IDoSomething)()
myMock.Stub(Function(d) d.DoSomething(Arg(Of Integer).Is.Anything))
.WhenCalled(Function(invocation) invocation.ReturnValue = 99)
.Return(Integer.MinValue)
Dim result As Integer = myMock.DoSomething(808)
End Sub
虽然这段代码没有按预期运行。变量 result
包含 Integer.MinValue
而不是预期的 99。
如果我用 C# 编写等效代码,它会按预期工作:result
包含 99。
有什么想法吗?
C# 等价物:
public interface IDoSomething
{
int DoSomething(int index)
}
[test()]
public void ShouldDoSomething()
{
var myMock = MockRepository.GenerateMock<IDoSomething>();
myMock.Stub(d => d.DoSomething(Arg<int>.Is.Anything))
.WhenCalled(invocation => invocation.ReturnValue = 99)
.Return(int.MinValue);
var result = myMock.DoSomething(808);
}
最佳答案
不同之处在于 Function(invocation) invocation.ReturnValue = 99
是一个返回 Boolean
的内联函数,其中 invocation => invocation.ReturnValue = 99
是一个内联函数,返回 99
并将 invocation.ReturnValue
设置为 99
。
如果您使用的是足够晚的 VB.NET 版本,则可以使用 Sub(invocation) invocation.ReturnValue = 99
除非 WhenCalled
需要返回值。
关于c# - 为什么 RhinoMocks 在 VB 和 C# 中表现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17591973/
最后一次构建是在 2010 年 1 月 5 日。 我要学习一个模拟框架,我不想学习一个产品会消亡。 最佳答案 Rhino Mocks 没有更发达——但值得注意的是,它复活了大约一年 . Ayende
有没有办法设置RhinoMocks期望而不关心返回值?类似这样的事情: repository.Expect(r => r.Add(1)).Return(Anything) 最佳答案 请注意,如果您未指
我正在尝试为一段使用拼写校正器的代码设置单元测试。我已经正确地注入(inject)了代码依赖项,所以在 Rhinomocks 中设置 stub 不是问题,但是我为测试创建的文本 block 有 50
public interface IServiceInvoker { R InvokeService(Func invokeHandler) where T : class; } publi
尝试引发 Rhino Mock 事件时出现以下错误 Invalid call, the last call has been used or no call has been made (make s
我有一些与 Entity Framework 一起使用的代码,例如 class Person{ pubic Person() { Address = new Address(); }
我想做以下... 在调用某个方法之前,某个属性必须始终返回值 x调用方法后,某个属性必须始终返回值 y 我熟悉 RhinoMocks 中的 WhenCalled 方法,它允许我在调用方法后设置返回值,
有谁知道如何在抽象类上引发事件? 下面的测试在最后一行失败了。我得到的异常如下: System.InvalidOperationException : Invalid call, the last c
使用 RhinoMocks - 我可以获取被调用函数的参数吗?我是说;我可以从函数调用中获取一些未知参数吗? 我有一个模拟,我希望在这个模拟上调用一些函数。我知道其中一个参数,但另一个参数是未知的,因
我使用 RhinoMocks 毫无问题地使用 AssertWasCalled 检查我的方法是否使用简单的参数调用,例如 Arg.Is.Equal(1) 等。 但是,当我尝试期待自己创建的复杂对象时,它
据我了解,用RhinoMocks创建的mock对象在创建时直接进入录音状态,然后调用Replay()进入replay状态。我想手动决定模拟对象何时开始录制,或者能够暂停录制。这在 RhinoMocks
好像注释不能支持代码 假设我调用了一个方法(例如 SaveTicket)并使用了构造函数(例如 Repository、Logging)来注入(inject)各种模拟接口(interface)。如果该方
我正在尝试更加熟悉 Rhinomocks 框架,并且我正在尝试了解 rhinomocks 的 Expect 方法。 这是我写的单元测试: [TestMethod] public void Create
如何使用 RhinoMocks 模拟以下行为? 被测试的方法在接口(interface)上调用 ReceivePayment 方法。 public void TestedMethod(){ b
我有一个类,我想在我的测试中模拟它,这是它接口(interface)的一部分: interface IInventory { Instrument[] GetAllInstrumentsAff
我使用 RhinoMocks 进行了一个非常简单的测试(我不得不说我是初学者)。我试着像这样模拟我的对象 var mock = MockRepository.GenerateMock(); 创建一个助
我有这个方法: public void Handle(ShipmentConfirmedEvent message) { try {
我使用 RhinoMocks 进行模拟/ stub ,使用 Nunit 框架进行单元测试。 我有以下类(class) class A { private int dat
我们目前正在从 NMock2 迁移到 RhinoMocks,但我们在复制这段代码时遇到了问题: foreach (EventInfo e in typeof(MarketMapPopupIMVPVie
我正在使用 RhinoMocks 编写 NUnit 测试。其中一项测试如下所示: mock = MockRepository.CreateMock(); // Arrange // During th
我是一名优秀的程序员,十分优秀!