【问题标题】:Mock interface properties using Moq使用 Moq 模拟接口属性
【发布时间】:2020-10-15 06:04:07
【问题描述】:

我有如下界面:

public interface IHealthHandler
{
    bool GetCurrentHealthStatus();
    void SetCurrentHealthStatus(bool status);
}

我试图以GetCurrentHealthStatustrue 的方式模拟它。

我认为这应该有效,但它没有:

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# 中的属性是使用与我之前的评论中所示相同的语法声明的。然后你可以使用SetupPropertySetup(如答案所示)只能用于方法。在您的情况下,您应该真正避免使用这两种方法并使用属性。

标签: c# .net-core moq


【解决方案1】:

看看https://github.com/Moq/moq4/wiki/Quickstart

试试这个

mockIHealthHandler.Setup(x => x.GetCurrentHealthStatus()).Returns(true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-03
    • 2010-11-30
    • 2012-08-21
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2011-11-13
    相关资源
    最近更新 更多