2016-09-30 3 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キーワードを追加しないと、Mockを使用することはできません。

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

ありがとうございました。あなたのアプローチを試し、ここで更新する – Manoj

関連する問題