在VB.NET中使用Rhino Mocks的Expect.Call获取Mock属性

Cod*_*nis 2 vb.net rhino-mocks visual-studio-2008

以下C#代码工作正常,测试按预期通过.

using NUnit.Framework;
using Rhino.Mocks;

namespace RhinoMocksTesting
{
    public interface ITesting
    {
        string Test { get; }
    }

    [TestFixture]
    public class MocksTest
    {

        [Test]
        public void TestMockExpect()
        {
            var mocks = new MockRepository();
            var testMock = mocks.StrictMock<ITesting>();
            Expect.Call(testMock.Test).Return("testing");
            mocks.ReplayAll();
            Assert.AreEqual("testing", testMock.Test);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,尝试在VB.NET中做同样的事情甚至不会编译!

Imports NUnit.Framework
Imports Rhino.Mocks

Public Interface ITesting
    ReadOnly Property Test() As String
End Interface

<TestFixture()> _
Public Class MocksTest

    <Test()> _
    Public Sub TestMockExpect()
        Dim mocks = New MockRepository
        Dim testMock = mocks.StrictMock(Of ITesting)()
        Expect.Call(testMock.Test).Return("testing")
        mocks.ReplayAll()
        Assert.AreEqual("testing", testMock.Test)
    End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

Expect.Call行产生以下构建错误:"重载解析失败,因为没有可访问的'Expect'接受此数量的参数."

Expect.Call在VB.NET中使用mocked属性的正确方法是什么?我看过一些帖子说Rhino Mocks在VB10中工作得更好,但是我在这个当前项目中遇到了Visual Studio 2008.

Bal*_*a R 6

尝试

Rhino.Mocks.Expect.Call(testMock.Test).Return("testing")
Run Code Online (Sandbox Code Playgroud)

资源

现在我们切换到Rhino mocks 3.5,看到我们在Expect上收到错误,说签名不正确.不用担心这是因为它选择了错误的Expect.即尝试在那里使用扩展方法.只需添加Rhino.Mocks.在期待之前,一切都很好.看看进口不会做同样的事情.