同样,可以在规则的when / then部分引用常量,是否可以使用java文件中的字符串常量作为规则名称?
用例是我们正在重构我们的drools规则src和测试文件,以清理项目早期做出的一些糟糕的设计决策。
我们想在测试中触发一个特定的规则(目前我们正在设置被测事实对象处于完全有效状态,然后改变我们想要测试的字段作为单元测试的一部分“安排”步骤,然后触发由无状态kieSession对象驱动的所有规则。当然,这使得测试比应该更难 - 例如,如果错过的字段不是被测试的那个,则完全不同的规则可能导致除了下面的错误之外的错误测试,给我们假阴性)。
我们的一个想法是利用有状态的kiesession进行测试,结合议程过滤器,根据他们的名字匹配规则。
我们想要做的是让drl文件使用存储在java文件中的字符串,该文件将与drl文件一起存储并从测试中引用,通过将共享常量传递给议程过滤器来启用特定规则以及仅设置被测事实对象的字段,而不是维护创建完整有效对象的方法。
到目前为止,我已经看到一些关于从规则本身访问规则名称的帖子,使用常量用于规则块的其他部分等,但很少围绕上述问题。
这是drools允许的吗?或者是否有另一种从文件外部检索规则名称以用作测试参数的方法?