【问题标题】:multiple parameters call back in MoqMoq 中的多个参数回调
【发布时间】:2013-09-05 04:46:23
【问题描述】:

有人可以看看下面的代码,看看有什么问题吗?

[TestInitialize]
public void SetupMockRepository()
{
    var memberId = "34345235435354545345";
    var title = "test";
    var url = "dafdsfdsfdsfdsafd";

    _mockPropertySearchRepository = new Mock<IPropertySearchRepository>(MockBehavior.Strict);
    _mockPropertySearchRepository
        .Setup(p => p.SaveSearchURL(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
            .Callback<string,string,string>((id,t,u) =>  )
            .Returns(new SavedSearchReturnResult() );

}

谢谢

【问题讨论】:

标签: callback moq


【解决方案1】:

我自己设法解决了这个问题,如下所示

[TestInitialize]
public void SetupMockRepository()
{
    var memberId = "34345235435354545345";
    var title = "test";
    var url = "dafdsfdsfdsfdsafd";


    _mockPropertySearchRepository = new Mock<IPropertySearchRepository>(MockBehavior.Strict);
    _mockPropertySearchRepository
        .Setup(p => p.SaveSearchURL(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
        .Callback<string,string,string>(
            (id, t, u) =>
            {
                memberId = id;
                title = t;
                url = u;
            })
        .Returns(new SavedSearchReturnResult());
}

【讨论】:

    【解决方案2】:

    对于方法采用的每个参数,将类型参数传递给Callback 方法。

    someMock
        .Protected()
        .Setup("SomeMethod", ItExpr.IsAny<string>(), ItExpr.IsAny<string>())
        .Callback<string, string>((x, y) => {});
    

    以上内容适用于Protected 和普通回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-22
      • 2016-06-08
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多