次のインターフェースを検討してください...
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;
}
}