管道和过滤器模式的替代方案

时间:2019-01-24 16:21:40

标签: design-patterns pipes-filters

修改和绑定以测试11个过滤器链中的第7个过滤器证明是很痛苦的测试。我必须进行从过滤器1到过滤器11的集成测试,以确保过滤器7正常工作。

每个过滤器都传递相同的对象引用,然后对其进行处理。 因此,对我来说,我不知道当我在要修改的第7个过滤器中收到该对象时,它将处于什么样的状态。

没有太多的文档。所以我真的不知道我要处于什么状态。

一般来说,还有其他方法可以替换“管道和过滤器”模式吗? 我正在寻找一种适合单元测试的好方法。

https://docs.microsoft.com/en-us/azure/architecture/patterns/pipes-and-filters

我正在处理的程序的排列方式似乎每个过滤器都依赖于前一个过滤器的输出。并按特定顺序添加过滤器。过滤器不能以不同的顺序重新排列。

1 个答案:

答案 0 :(得分:0)

  

我必须进行从Filter#1到Filter#11的集成测试,以确保Filter#7正常工作。

即使1-11的测试通过,您最终也将测试11的输出,而不是7的输出。

开发人员测试分为三个基本级别:系统,集成,单元​​。所有11个过滤器的测试都是系统测试,也称为端对端测试。一起测试过滤器的子集将是集成测试。仅测试过滤器7就是单元测试。

要执行单元测试,必须模拟过滤器7的输入。此模拟输入与过滤器1-6和过滤器7的规范(要求)无关。

如果您不知道过滤器7的要求,则无法对过滤器7进行单元测试。更换管道和过滤器样式将无助于测试未知的要求。