0

次のインターフェースを検討してください...

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プロパティ呼び出しの戻り値をスタブ化するにはどうすればよいですか?

編集- MySUT クラスのコードの追加 (コメントで要求されたとおり)

public class MySUT
{
    private readonly MyInterface _myInterface;

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

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

1 に答える 1

3

私が変更され

var sut = MySUT(fake);

var sut = new MySUT(fake);

そして、それは私のテストソリューションで機能しました。

テストには FakeItEasy 1.7.4257.42 と NUnit を使用しました。メイン プロジェクトとテスト プロジェクトは、2 つの異なるアセンブリに分かれていました。

于 2011-12-30T21:20:59.407 に答える