Mik*_*oud 1 .net c# unit-testing moq
好吧,让我们假设我有一个类似下面的课......
public class Foo : IFoo
{
public string Bar
{
get { ... }
}
public void Initialize()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
...正如你所看到的,它实现了一个接口,所以我可以嘲笑它.现在,在我的单元测试中,我正在构建这样的模拟器......
var mock = new Mock<IFoo>();
mock.SetupProperty(p => p.Bar).SetReturnsDefault("Some static value here.");
Run Code Online (Sandbox Code Playgroud)
...但是,当测试运行时,我收到以下错误...
System.ArgumentException:属性IFoo.Bar是只读的.参数名称:表达式
那么,三个问题:
SetReturnsDefault吗?谢谢大家!
Zde*_*vic 10
显然,错误消息告诉您不能像这样模拟只读属性.相反,尝试:
mock.SetupGet(p => p.Bar).Returns("whatever");
Run Code Online (Sandbox Code Playgroud)
如果您希望未显式设置的所有字符串属性返回一些字符串,请执行以下操作:
mock.SetReturnsDefault<string>("whatever");
// IMPORTANT: don't call mock.SetupGet(p => p.Bar) as it will override default setting
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
958 次 |
| 最近记录: |