編集:以前は正しく明確に説明していなかったため、この質問を完全に言い直しています。
テスト クラス以外はすべて API の一部です。モック インターフェイスをモック クラスに渡し、そのモック クラスをテスト クラスに渡します。私のテスト クラスはクラスを拡張し、コンストラクターの本体は空です。コードがコンストラクターで壊れます。つまり、実装が隠されている基底クラスのコンストラクターに障害があります。不明な点がありましたらお詫び申し上げます。不明な点がある場合はお知らせください。よろしくお願いいたします。
コード例を次に示します。
public class TestClass : ApiClass0
{
ApiClass1 apiClass1;
public TestClass(ApiClass1 apiClass1) : base(apiClass1)
{
this.apiClass1 = apiClass1;
}
public void MethodToTest()
{
apiClass1.Method0();
}
}
public class ApiClass0
{
public ApiClass0(ApiClass1 apiClass1) { }
}
public class ApiClass1
{
public ApiClass1(IApiInterface i) {}
public Method0() { }
}
public interface IApiInterface0 {}
public class TestClassTest
{
[TestInitialize()]
public void TestInitialize()
{
IApiInterface0 mApiInterface0 = MockRepository.GenerateMock<IApiInterface0>();
ApiClass1 mApiClass1 = MockRepository.GenerateMock<ApiClass1>(mApiInterface0);
TestClass testClass = new TestClass(mApiClass1); //code breaks here
}
}