2016-09-30 64 views
1

我是moq的新手,嘗試爲下面的類實現moq測試,但遇到了錯誤。Moq內部方法

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但sti測試失敗。有人能讓我知道我錯在哪裏嗎?

[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,Publi‌​cKey=002400000480000‌​09400000006020000002‌​40000525341310004000‌​001000100c547cac37ab‌​d99c8db225ef2f6c8a36‌​02f3b3606cc9891605d0‌​2baa56104f4cfc0734aa‌​39b93bf7852f7d926665‌​4753cc297e7d2edfe0ba‌​c1cdcf9f717241550e0a‌​7b191195b7667bb4f64b‌​cb8e2121380fd1d9d46a‌​d2d92d2d15605093924c‌​ceaf74c4861eff62abf6‌​9b9291ed0a340e113be1‌​1e6a7d3113e92484cf70‌​45cc7")] 

回答

0

GetConfigString轉換成例如財產,並添加virtual關鍵字,否則將無法使用模擬與它。

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

感謝您的幫助。將嘗試你的方法並在這裏更新 – Manoj