如何停止获取属性的调用?
考虑以下接口...
public interface MyInterface
{
bool MyProperty { get; }
}
我试图在 get 函数的调用rel="nofollow">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
属性似乎总是返回 false。
如何存根 get
属性调用的返回值?
编辑 - 添加 MySUT 类的代码(根据评论中的要求)
public class MySUT
{
private readonly MyInterface _myInterface;
public MySUT(MyInterface myInterface)
{
_myInterface = myInterface;
}
public bool Foo()
{
return _myInterface.MyProperty;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我更改
为
然后它在我的测试解决方案中起作用。
我使用 FakeItEasy 1.7.4257.42 和 NUnit 进行测试。主项目和测试项目分为两个不同的程序集。
I changed
to
and then it worked in my test solution.
I used FakeItEasy 1.7.4257.42 and NUnit for the test. The main project and test project was separated in 2 different assemblies.