Moq内部方法

时间:2016-09-30 04:31:46

标签: c# moq

我是moq的新手,并试图为下面的类实现moq测试,但却遇到了错误。

df1[rownames(unique(df1[,c("ID","X1")])),]

测试方法

public class ClassToTest {
   internal Func<string> GetConfigString = 
        () => ConfigurationManager.AppSettings["somekey"].ToString()
}

设置失败并显示一条消息:

  

表达式不是方法调用

我在var mock = new Mock<ClassToTest>(); mock.Setup(m => m.GetConfigString).Returns(It.IsAny<Func<string>>()); 添加了以下行,但测试仍然失败。有人能让我知道我哪里错了吗?

AssemblyInfo.cs

1 个答案:

答案 0 :(得分:0)

GetConfigString转换为例如属性并添加virtual关键字,否则无法使用Mock。

    internal virtual Func<string> GetConfigString
    {
        get
        {
            return () => ConfigurationManager.AppSettings["somekey"];
        }
    }