7
Help us understand the problem. What are the problem?

posted at

updated at

[C#]クラス自体がinternalなときのUnitTest

UnitTest関連記事

やりたいこと

以前、private、internalなメソッドをUnitTestしたいときのやり方を調べたが、クラス自体がinternalだったときに、そもそもUnitTest側コードからそのクラスが見えないため、テストできなかった。何とかUnitテストしたい。

やり方

InternalsVisibleTo属性を使う。

まず、dll側のAssenblyInfo.csを開く。
image.png

そこに、下記の一文を追加する。
「UnitTestProject1」の部分は、internalクラスを公開する公開先のアセンブリ名を書く。

[assembly: InternalsVisibleTo("UnitTestProject1")]

これで、公開先のアセンブリ(ここでいうところの「UnitTestProject1.dll」)からは、Class1に含まれるinternalなクラスが見えるようになる。

コード

https://github.com/tera1707/WPF-/tree/master/028_PrivateClassUnitTest
以前のコードと同じ。Class1とClass1Subがinternalにしただけ。

参考

Visual Studio の単体テストで利用するInternalsVisibleTo属性について
http://moriblog.kit-eng.com/?p=867

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
7
Help us understand the problem. What are the problem?