【问题标题】:Setup Method with object type parameter using MOQ使用最小起订量的对象类型参数设置方法
【发布时间】:2022-01-16 17:26:06
【问题描述】:

我有一个界面

public interface IProgramer
{
    bool ReturnStatus(Program prg,string filepath);
}

public class Programer :IProgramer
{
    public bool ReturnStatus(Program prg,string filepath)
    {
       // logic
       return status
    }
}

单元测试用例

public void StartOperationTest()
{
    string dummyfilepath = "C://Users//x//";
    Program dummyprgObj = new Program
    {
       Name = "x",
       Rollno = 1,
     
    };
    var mock = new Mock<IProgramer>();
    mock.Setup(x => x.ReturnStatus(dummyprgObj, dummyfilepath)).Returns(true);
}

setup 方法总是给 false。

谁能告诉我这里出了什么问题?

【问题讨论】:

  • 那是它的原型,类 Programer : IProgrammer 是他们的实际代码。您在设置中发现任何问题吗?
  • 能贴出真实的测试方法实现吗?
  • 测试方法不完整。你在哪里使用mock对象(只有设置,没有使用)?
  • 设置后,我调用了:mock.Object.ReturnStatus(dummyprgObj,dummyfilepath) 我总是出错。
  • 您能否也与我们分享您的测试中的 Act 和 Assert 部分?

标签: c# mocking moq


【解决方案1】:

尝试使用 mock.SetupGet() 而不是您正在使用的“设置”。 还有一个观察,“程序员”类应该实现接口“IProgramer”

【讨论】:

  • SetupGet 用于模拟属性 (get),而不是方法
  • 知道为什么 setup 方法返回 false 吗?
  • @tyu,请发布完整的测试方法实现。
  • public void StartOperationTest() { string dummyfilepath = "C://Users//x//";程序员 dummyprgObj = new dummyprgObj { Name = "x", Rollno = 1, }; var mock = new Mock(); mock.Setup(x => x.ReturnStatus(dummyprgObj, dummyfilepath)).Returns(true); }
  • @tyu,只需编辑您的问题并使用代码格式发布此方法。
猜你喜欢
  • 1970-01-01
  • 2015-10-28
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
相关资源
最近更新 更多