【发布时间】:2019-01-24 16:21:40
【问题描述】:
修改和绑定以测试 11 个过滤器链中的第 7 个过滤器被证明是很难测试的。我必须进行从 Filter#1 到 Filter #11 的集成测试,以确保 Filter#7 正常工作。
每个过滤器都传递相同的对象引用并对其进行处理。 所以对我来说,我不知道当我在我正在修改的第 7 个过滤器中收到这个对象时,它会处于什么样的状态。
没有太多的文档。所以我真的不知道我会得到什么状态。
还有其他方法可以替代一般的管道和过滤器模式吗? 我正在寻找适合单元测试的好方法。
https://docs.microsoft.com/en-us/azure/architecture/patterns/pipes-and-filters
我正在处理的这个程序的排列方式似乎每个过滤器都依赖于前一个过滤器的输出。过滤器按特定顺序添加。过滤器不能以不同的顺序重新排列。
【问题讨论】:
-
也许可以从修改请求开始,你为什么要这样做?也许应用程序存在不当行为,因此您更改了第 7 个过滤器来处理此问题。然后最好使用 http 客户端或导致这种不当行为的东西来模仿用户操作。如果可以模仿这样的用户操作,II 将关闭过滤器#7 以使测试失败,之后打开第 7 个过滤器并且测试用例应该通过。研究您正在修改的应用程序,也许已经有集成测试用例,以同样的方式进行新测试可能会很好。
标签: design-patterns pipes-filters