编辑: 我完全重申了这个问题,因为我以前没有正确地阐述它。
除了我的测试类之外的所有内容都是API的一部分。我将一个模拟接口传递给一个mock类,然后将该mock类传递给我的测试类。我的测试类扩展了一个类,构造函数的主体是空的。我的代码在我的构造函数中断,意味着失败在基类构造函数中,其实现是隐藏的。如果有任何不清楚的地方我很抱歉,请告诉我,我会重新说明任何不清楚的部分。提前感谢您的帮助。
这是一个代码示例:
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
}
}
答案 0 :(得分:0)
ApiClass1
的构造函数接受IApiInterface
作为参数,但测试使用IApiInterface0
调用它。改变其中任何一个,测试将通过。