1
编辑构造失败。除了我的测试类犀牛嘲笑路过的时候模拟类作为参数
一切都是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
}
}
这真的不清楚你的意思......你为什么“需要能够先初始化它,”如果你试图嘲弄吗?模拟框架将*创建实例本身。 – 2013-04-10 18:35:17
我不认为你可以提供一些示例代码来说明你的情况? – PinnyM 2013-04-10 18:36:35
@JonSkeet对不起,这就是我的意思,当我叫GenerateMock(使用犀牛),这时候我得到了空引用异常 – tmakino 2013-04-10 18:39:26