考虑以下界面......
public interface MyInterface
{
bool MyProperty { get; }
}
我试图在fakeiteasy中对此属性的get
函数进行调用。
[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;
}
}
答案 0 :(得分:3)
我改变了
var sut = MySUT(fake);
到
var sut = new MySUT(fake);
然后它在我的测试解决方案中工作。
我使用FakeItEasy 1.7.4257.42和NUnit进行测试。主要项目和测试项目分为两个不同的组件。