【发布时间】:2015-11-25 16:34:06
【问题描述】:
假设您有一个供应商应用程序(以及相关的封闭供应商 API),它调用客户编写的 C#“插件”代码。插件实现供应商定义的抽象类。例如
public class MyPlugin : AbstractVendorPlugin
{
public override VendorClass PluginMain(VendorClass vc, VendorFactory vf)
{
vc.AddCalculation("x => x*x");
ExecutionContext ec = vf.CreateExecutionContext();
vc.Execute(ec);
return vc;
}
}
传递到插件区域的类/工厂的句柄由供应商应用程序创建,不能在该应用程序之外创建(假设我们的构建服务器不能自发创建应用程序实例)。
我不确定如何继续使插件代码可单元测试。我能想到的唯一选择是将对象包装在接口中,然后将测试限制在计算调用并验证这些调用的输入的测试用例(如果它们是供应商对象,则无法验证输出)。这似乎没有太大价值。
这里还有其他选项我没有看到吗?对这样的插件范例进行单元测试是否有意义?
【问题讨论】:
标签: c# unit-testing mocking moq