Я пошел с этим решением:
Дважды заглушить собственность с насмешками на носорога
, но даже когда я меняю оба своих заглушки на .Expect, первое ожидание выигрывает:
Вот отдых в моно:
using System;
с использованием NUnit.Framework;
используя Rhino.Mocks;
namespace FirstMonoClassLibrary
{
[TestFixture]
открытый класс TestingRhinoMocks
{
Sut _systemUnderTest;
IFoo _dependency;
[SetUp]
public void Setup()
{
_dependency = MockRepository.GenerateMock<IFoo>();
_dependency.Expect(x => x.GetValue()).Return(1);
_systemUnderTest = new Sut(_dependency);
}
[Test]
public void Test()
{
_dependency.Stub(x => x.GetValue()).Return(2);
var value = _systemUnderTest.GetValueFromDependency();
Assert.AreEqual(2, value); // Fails says it's 1
}
}
public interface IFoo
{
int GetValue();
}
public class Sut
{
private readonly IFoo _foo;
public Sut(IFoo foo)
{
_foo = foo;
}
public int GetValueFromDependency()
{
return _foo.GetValue();
}
}
}