以下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);
}
}
}
然而,尝试在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
Expect.Call
行产生以下构建错误:“重载解析失败,因为没有可访问的'Expect'接受此数量的参数。”
在VB.NET中使用Expect.Call
和mocked属性的正确方法是什么?我看过一些帖子说Rhino Mocks在VB10中运行得更好,但是我在这个当前项目中遇到了Visual Studio 2008。
答案 0 :(得分:6)
尝试
Rhino.Mocks.Expect.Call(testMock.Test).Return("testing")
现在我们切换到Rhino mocks 3.5和 看到我们在Expect上收到错误 说签名不是 正确。不用担心这是因为它 选择错误的期望。它是 即试图使用扩展名 方法那里。只需添加Rhino.Mocks。 在期待之前,一切都很顺利 再次。看看进口是怎么做的 同样的事情。