我的目标是通过检查某些属性在执行之前和之后是否有效来执行和测试某些Node-RED流。 我知道有一些方法可以隔离地测试某些节点,甚至可以通过使用注入到原始流中的辅助节点来测试某些流,例如https://github.com/node-red/node-red-node-test-helper,但我想测试一个流程而不更改它。 为此,我找到了一个npm模块(https://www.npmjs.com/package/aspectjs),该模块为JS实现了Aspect范例。使用此模块,您可以基本定义要执行的切入点之前/之后要观察的切入点以及提出的建议。 我已经尝试过了,它适用于一些琐碎的示例,但是当我尝试在Node-RED上下文中应用它时,我遇到了大问题。 给出如下的简化示例:
let subflow, advice;
/*pointcut(s) declaration*/
subflow = {
pointcut: function(){
/*put Node-RED flow here and execute it, somehow*/
},
};
/*advice(s) declaration*/
advice = {
checkAfterPointcut: function check(){/*put assert here*/},
};
after(subflow , "pointcut").add(advice, "checkAfterPointcut");
/*pointcut execution (it will activate the advice)*/
subflow.pointcut();
我想找到一种方法来代替/ 将Node-RED流放入并执行,以某种方式 /来处理并执行我的Node-RED流。有想法吗?