使用最小起订量进行单元测试,以'plug-in'针对封闭的供应商API编写的代码



假设您有一个供应商应用程序(以及相关的封闭供应商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;
    }
}

传递到插件区域的类/工厂的句柄是由供应商应用程序创建的,不能在该应用程序之外创建(让我们假设我们的构建服务器不能自发创建应用程序实例)。

我不确定如何使插件代码单元可测试。我能想到的唯一选项是将对象封装在接口中,然后将测试限制在测试用例中,这些用例对调用进行计数并验证这些调用的输入(如果输出是供应商对象,则无法验证)。这似乎没有多大价值。

还有其他我看不到的选择吗?单元测试这样的插件范例有意义吗?

单元测试的目的是验证被测对象的行为。单元测试应该很快,不依赖于第三方。

集成测试的目的是验证端到端的行为。

所以你的单元测试方法是正确的。首先包装vendor对象,用您的模拟对象替换实际实现,断言您的代码使用正确的参数以正确的方式调用vendor的对象。您不应该执行全流程,因为它不是单元测试的责任。

最新更新