Moq返回与参数相同的委托

亚伦

我对Moq并不陌生,正在寻找一种能够模拟以下界面的方法。

public interface ICacheProveder
{
    T GetOrAddToCache<T>(string key, Func<T> populateFunc);
}

当前,此接口用于缓存代码表等项目。该模拟将需要返回通过populateFunc传递的任何结果。我目前正在使用Moq版本4.2.1502.911

脱水

要返回Func作为参数传递的结果,可以使用ReturnsMoq中的

在下面的示例中,为简单起见,我选择Tstring,可以根据您的需要进行更改。

[Test]
public void TetMethod()
{
    //Setup
    var cacheProveder = new Mock<ICacheProveder>();

    cacheProveder.Setup(a => a.GetOrAddToCache<string>(It.IsAny<string>(), It.IsAny<Func<string>>()))
                    .Returns((string key, Func<string> populateFunc) => { return populateFunc(); });

    // rest of the code

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章