我正在开发面向数据流的特定于域的语言.为了简化,让我们看一下操作.操作具有许多命名参数,可以要求它们使用当前状态计算结果.
要确定操作何时应该生成结果,它会获得一个对哪个参数从谁获取值敏感的决策.当此决定确定已满足时,它将使用观察者发出信号.
Accessor侦听此Signal,然后调用Operation的Result方法,以便将其复用到其他Operations的参数.
到目前为止,这么好,很好地解耦设计,可组合和可重用,并且根据所使用的特定Observer,可以像你想要的那样异步.
现在,这里是我的问题:我会爱开始编码针对这种设计实际测试.但是使用异步Observer ......
目前,我猜这些琐碎的案例很容易测试,但是一旦我想测试复杂的多对多 - 操作之间的情况,我必须求助于设计Just Works(tm)......
编辑(1):
让我们考虑以下场景:
想象一下操作A为操作B1,B2和B3提供值的情况,每个操作都有一个On-Every-Input-Decision(每当更新任何参数时都会满足).然后,让B1和B2以及B3各自将它们的值提供给操作C的相同参数(为了比较,例如,将这些值聚合到查找表或某些等中).
预期的步骤是:
所以,我知道在这种情况下,我可以模拟例如C的决定,看看它是否确实了解了B1,B2和B3的作用.问题是:我什么时候可以检查这个?
编辑(2):我的目标似乎更像是端到端测试,即将DSL的各个部分组合在一起,看看结果是否符合我的预期.
编辑(3):结果我过于复杂了:-)