単体テストを実装しているVisualStudio2008 C#.NET 3.5プロジェクトがありますが、問題が発生しました。私のコードは、内部コンストラクターを使用してオブジェクトを実装するサードパーティのアセンブリを参照しています。
例えば:
// in 3rd party assembly
public class Bar
{
// internal constructor
internal Bar();
public int Id { get; }
public string Name { get; }
public Foo Foo { get; }
}
public class Foo
{
// internal constructor
internal Foo();
public Collection<Bar> GetBars();
}
私がユニットテストしたい私の方法の1つはこれです:
// in my assembly
public static Bar FindByName(this Collection<Foo> c, string name)
{
// search through the Foos to find the first bar with the matching name
}
そして、次のようにテストします。
void TestMethod()
{
Collection<Foo> foo_pool = new Collection<Foo>()
{
new Foo() { /*..*/ } // Error! ctor is inaccessible
};
Bar b = foo_pool.FindByName("some_name");
assert_equal (b.Name, "some_name");
}
Foo
しかし、タイプまたはタイプのオブジェクトを作成することはできませんBar
。では、どうすればメソッドをユニットテストできますか?
ありがとう