0

编辑:我完全重申了这个问题,因为我以前没有正确地表达它。

除了我的测试类之外的所有东西都是 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
    }
}
4

1 回答 1

0

for 的构造函数ApiClass1接受IApiInterface作为参数,但测试使用IApiInterface0. 更改其中任何一个,测试都会通过。

于 2013-04-18T08:31:38.943 回答