【发布时间】:2020-10-15 06:04:07
【问题描述】:
我有如下界面:
public interface IHealthHandler
{
bool GetCurrentHealthStatus();
void SetCurrentHealthStatus(bool status);
}
我试图以GetCurrentHealthStatus 是true 的方式模拟它。
我认为这应该有效,但它没有:
var mockIHealthHandler = new Mock<IHealthHandler>();
mockIHealthHandler.SetupProperty(x => x.GetCurrentHealthStatus(), true);
这是怎么做到的?
【问题讨论】:
-
GetCurrentHealthStatus不是属性,是方法。您是否有理由在 C# 中手动使用 Getters 和 Setters,而不是使用bool CurrentHealthStatus { get; set; }正确声明属性? -
主要是因为我是 C# 的新手,对它非常陌生。如果我的班级有这个
public bool CurrentHealthStatus { get; set; },界面应该是什么样的?一样吗? -
是的,C# 中的属性是使用与我之前的评论中所示相同的语法声明的。然后你可以使用
SetupProperty。Setup(如答案所示)只能用于方法。在您的情况下,您应该真正避免使用这两种方法并使用属性。