最小起订量内部方法
Moq Internal Methods
我是最小起订量的新手,正在尝试为以下 class 实施最小起订量测试,但遇到错误。
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>>());
安装失败并显示消息:
expression is not a method invocation
我在 AssemblyInfo.cs
中添加了以下行,但测试仍然失败。谁能告诉我哪里错了?
[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
将GetConfigString
转换成例如属性 并添加 virtual
关键字,否则将无法使用 Mock。
internal virtual Func<string> GetConfigString
{
get
{
return () => ConfigurationManager.AppSettings["somekey"];
}
}
我是最小起订量的新手,正在尝试为以下 class 实施最小起订量测试,但遇到错误。
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>>());
安装失败并显示消息:
expression is not a method invocation
我在 AssemblyInfo.cs
中添加了以下行,但测试仍然失败。谁能告诉我哪里错了?
[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
将GetConfigString
转换成例如属性 并添加 virtual
关键字,否则将无法使用 Mock。
internal virtual Func<string> GetConfigString
{
get
{
return () => ConfigurationManager.AppSettings["somekey"];
}
}