我已经搜索了这个,它似乎是一个赶上所有,不幸的是,我读过的一切都无助于弄清楚。这里是类:犀牛嘲笑异常期望#1当前#0:需要帮助
public interface IMockInterface
{
MockClass MockedMethod();
MockClass MockThis();
}
public class MockClass : IMockInterface
{
public virtual MockClass MockedMethod()
{
MockClass returnValue;
returnValue = new MockClass();
returnValue.SomeMessage = "Not mocked";
return returnValue;
}
public MockClass MockThis()
{
MockClass mock;
MockClass returnValue;
mock = new MockClass();
return mock.MockedMethod();
}
}
而且测试:
public void MockTest_Internal()
{
MockClass mainClass;
MockClass returnedClass;
IMockInterface mockProvider;
mainClass = new MockClass();
mockProvider = repository.StrictMock<IMockInterface>();
Expect.Call(mockProvider.MockedMethod())
.Return(new MockClass { SomeMessage = "Mocked" });
repository.ReplayAll();
returnedClass = mainClass.MockThis();
provider.AssertWasCalled(item => item.MockedMethod());
Assert.IsTrue(returnedClass.SomeMessage == "Mocked");
}
,也有试过和不工作
但我不断收到此异常:
犀牛.Mocks.Exceptions.ExpectationViolationException:
IMockInterface.MockedMethod();预期#1,实际#0
现在从我读过的这将建议要么调用方法不同于预期的参数或该方法从未调用,但预计会被调用。这不是测试的情况。
边注意:这是我第一次真正使用Rhino.Mocks而没有使用一些内部代码,所以我基本上都是在随身携带时才选择它。有可能是一些非常愚蠢的在这里...
这是旧的测试评论,但不是我应该一直使用:
public void MockTest_Internal()
{
MockClass mainClass;
MockClass returnedClass;
IMockInterface mockProvider;
mainClass = new MockClass();
var provider = MockRepository.GenerateStub<IMockInterface>();
provider.Stub(item => item.MockedMethod())
.Return(new MockClass { SomeMessage = "Mocked" });
returnedClass = mainClass.MockThis();
provider.AssertWasCalled(item => item.MockedMethod());
Assert.IsTrue(returnedClass.SomeMessage == "Mocked");
}
我只是想创建一个垃圾类来学习如何模拟。基本上,我创建了一个类,以便在方法中调用方法并返回一些内容。 – 2008-12-15 22:01:14