0

内部メソッドの単体テスト ケースを作成しています。メール クラス プロジェクト [assembly: InternalsVisibleTo("myuntest_assemblyname")] の AssemblyInfo.cs に必要な変更を加えました。

これで、単体テスト ケース メソッドで内部メソッドにアクセスできるようになりました。しかし、コードをコンパイルすると、以下のようなエラーが発生します

エラー 1 'main class project name' には 'Process' の定義が含まれておらず、タイプ 'main class project name' の最初の引数を受け入れる拡張メソッド 'Process' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか? ?)

私のメインクラスには強い名前があります。

私が行方不明になっているポイントがあれば素晴らしいでしょう。

メインクラス構造

namespace Renewals
{
    public class StateProcessor
    {
        internal virtual void PutEmailInQueue(DataTable dataTable)
        {    
        }
    }
}

// クラス構造のテスト

namespace Renewals.Tests.Unit
{
    [TestClass]
    public class StateProcessorTest
    {

        [TestMethod]
        public void PutEmailInQueueTest()
        {
            DateTime processingDate = Convert.ToDateTime("27-feb-2013"); ;

            StateProcessor stateProcess = new StateProcessor(processingDate);
            stateProcess.PutEmailInQueue(new DataTable());
        }
    }
}

PutEmailInQueue - このメソッドが問題を引き起こしています。

4

1 に答える 1

2

あなたはあなたのクラスが強い名前を使うと書いた。

InternalsVisibleTo()ステートメントを公開鍵で変更する必要があると思います。

例えば:[アセンブリ:InternalsVisibleTo( "friend_signed_B、のPublicKey = 0024000004800000940000000602000000240000525341310004000001000100e3aedce99b7e10823920206f8e46cd5558b4ec7345bd1a5b201ffe71660625dcb8f9a08687d881c8f65a0dcf042f81475d2e88f3e3e273c8311ee40f952db306c02fbfc5d8bc6ee1e924e6ec8fe8c01932e0648a0d3e5695134af3bb7fab370d3012d083fa6b83179dd3d031053f72fc1f7da8459140b0af5afc4d2804deccb6")]

詳細については、http://msdn.microsoft.com/en-us/library/bb385180.aspxを参照してください。

于 2013-02-27T10:58:27.607 に答える