【发布时间】:2015-11-22 08:18:35
【问题描述】:
我的第一个项目有一个方法,该方法返回一个模型对象实例,该模型对象实例是用一个继承模型的私有类 PrivateModel 和一个私有接口 IFoo 实现的。
示例:
项目1:
public class Model {}
private interface IFoo {}
private class PrivateModel : Model, IFoo {}
// a sample class with the returning method
public class Bar
{
public static Model CreateModelInstance()
{ return new PrivateModel(); }
// code...
}
项目2:
// get model instance
var model = Bar.CreateModelInstance(); // return a Model
第二个项目使用模型参数调用方法“Act”,但 Act 的实现测试模型是否为 PrivateModel(使用 IFoo 实现)。
项目1:
public class Bar
{
// code...
public static bool Act(Model model)
{
// sample logic
return model is IFoo;
}
}
现在的问题:
因为我必须测试一个执行对 Act 方法的调用的方法(它是静态的),并且我不能模拟它,所以我必须构建一个实现 IFoo 的对象(即私有)。我可以在测试项目(第三个项目)中实现类似于TestClass: IFoo 的类,还是必须使用从 Project1 返回的模型?
【问题讨论】:
-
您的代码必须有更多内容,因为那甚至无法编译。请提供一个简短但完整的示例来说明问题。
标签: c# testing interface mocking private