C# internalクラスをテストする方法

最近テストを書きながらプログラムを作っていく方法に徐々に慣れてきました。Visual Studio ではテストを書くために新しいプロジェクトを作らなければなりません。

internalクラスはプロジェクトから呼び出すことができないので。今までは仕方がないのでpublicにしてテストをしてました。しかし、internalクラスをテストする方法がありました。

方法は非常に簡単ですが、覚えられないので忘備録として書きます。

宣言したクラスに次のことを記載する

テストプロジェクトのnamespaceがReportTestとした場合、作成するクラスに以下のように記載します。

using System.Runtime.CompilerServices; 
[assembly: InternalsVisibleTo("UnitTestProject")]

例)宣言する

using System;
using System.Runtime.CompilerServices; 
[assembly: InternalsVisibleTo("ReportTest")] 

namespace Report
{ 
    internal sealed class TestClass
    {
        public TestClass() 
        {

        }
    }
}

例)テストクラス

using Microsoft.VisualStudio.TestTools.UnitTesting; 
using System; 
using System.Collections.Generic; 
using Report; 

namespace ReportTest 
{ 
    [TestClass] 
    public class ContentsTest 
    { 
        [TestMethod] 
        public void TestClass() 
        { 
            TestClass testClass = new TestClass();
        } 
    } 
}

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です