[英]Can I use FakeItEasy to fake Properties.Settings.Default properties?
我正在尝试做类似于A.CallTo(() => MyProject.Properties.Settings.Default.SomeProperty).Returns("Hello, World! ;-)");
,但是我得到了……
非虚拟方法不能被拦截。
… 作为回报。
有任何想法吗?
FakeItEasy不能用于覆盖SomeProperty
。 问题是Default
是sealed
类型的Settings
类型的成员。 为了能够将A.CallTo
与Default.SomeProperty
一起使用, Default
必须是使用A.Fake <…>创建的伪造对象。
此外,如文档的“可伪造的内容”页面所示, SomeProperty
将需要是虚拟的或以其他方式覆盖。
如果您需要能够在测试中提供伪造的配置,则可以在配置周围引入一个抽象层,并通过使用委托给MyProject.Properties.Settings
的具体类的生产代码伪造该抽象层。
另一种选择(我认为是更好的选择)是避免完全伪造/模拟,而直接更改设置,也许可以这样做:
MyProject.Properties.Settings.Default.SomeProperty= "Hello, World! ;-)"
尽管如注释中所指出,但这仅是在属性具有setter的情况下的一种选择,似乎Application属性没有,而User属性却有。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.