Носорог высмеивает заглушку против ожидания, всегда выбирая первый, почему? - PullRequest
2 голосов
/ 23 ноября 2011

Я пошел с этим решением:

Дважды заглушить собственность с насмешками на носорога

, но даже когда я меняю оба своих заглушки на .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();
    }

}

}

1 Ответ

3 голосов
/ 24 ноября 2011

вам нужно сделать следующее:

[Test]
public void Test()
{
   _dependency.BackToRecord();
   _dependency.Expect(_ => _.GetValue).Return(2);
   _dependency.Replay();
   var value = _systemUnderTest.GetValueFromDependency();
   value.ShouldBe(2);   // Fails  says it's 1
}
...