Как вы заглушаете звонки, чтобы получить свойства? - PullRequest
0 голосов
/ 30 декабря 2011

Рассмотрим следующий интерфейс ...

public interface MyInterface
{
    bool MyProperty { get; }
}

Я пытаюсь заблокировать вызов функции get этого свойства в fakeiteasy .

[Test]
public void Foo()
{
    var fake = A.Fake<MyInterface>();
    var sut = new MySUT(fake);
    A.CallTo(() => fake.MyProperty).Returns(true);

    var result = sut.Foo();

    Assert.IsTrue(result);
}

Метод Foo () тестируемой системы просто возвращает значение вызова свойства MyProperty get.К сожалению, этот тест всегда не проходит.При отладке кажется, что свойство get всегда возвращает значение false.

Как можно заглушить возвращаемое значение вызова свойства get?

EDIT - Добавление кода класса MySUT (как требуется в комментариях)

public class MySUT
{
    private readonly MyInterface _myInterface;

    public MySUT(MyInterface myInterface)
    {
        _myInterface = myInterface;
    }

    public bool Foo()
    {
        return _myInterface.MyProperty;
    }
}

1 Ответ

3 голосов
/ 31 декабря 2011

я изменил

var sut = MySUT(fake);

до

var sut = new MySUT(fake);

и тогда это сработало в моем тестовом решении.

Я использовал FakeItEasy 1.7.4257.42 и NUnit для теста. Основной проект и тестовый проект были разделены на 2 разные сборки.

...