Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drools-使用java常量作为Drools规则名称_Java_Unit Testing_Drools - Fatal编程技术网

Drools-使用java常量作为Drools规则名称

Drools-使用java常量作为Drools规则名称,java,unit-testing,drools,Java,Unit Testing,Drools,同样,可以在规则的when/then部分引用常量,是否可以使用java文件中的字符串常量作为规则名称? 用例是我们正在重构drools规则src和测试文件,以清理项目早期做出的一些错误设计决策 我们想在测试中触发一个特定的规则(目前我们正在将测试中的事实对象设置为完全有效状态,然后将要测试的字段更改为单元测试“安排”的一部分)步骤,然后触发由无状态会话对象驱动的所有规则。这自然会使测试变得更加困难-例如,如果遗漏了一个不是被测试字段的字段,则完全不同的规则可能会导致与被测试字段不同的错误,从而导

同样,可以在规则的when/then部分引用常量,是否可以使用java文件中的字符串常量作为规则名称?

用例是我们正在重构drools规则src和测试文件,以清理项目早期做出的一些错误设计决策

我们想在测试中触发一个特定的规则(目前我们正在将测试中的事实对象设置为完全有效状态,然后将要测试的字段更改为单元测试“安排”的一部分)步骤,然后触发由无状态会话对象驱动的所有规则。这自然会使测试变得更加困难-例如,如果遗漏了一个不是被测试字段的字段,则完全不同的规则可能会导致与被测试字段不同的错误,从而导致错误(否定)

我们的想法之一是利用有状态会话进行测试,并结合议程过滤器,根据名称匹配规则

我们要做的是让drl文件使用存储在java文件中的字符串,该文件将与drl文件一起存储,并从测试中引用,通过将共享常量传递给议程过滤器,并仅设置被测事实对象的字段,而不是维护创建完整有效对象的方式,从而启用特定规则

到目前为止,我已经看到一些关于从规则本身内部访问规则名称的帖子,在规则块的其他部分使用常量等,但很少涉及上述问题


这是流口水的东西吗?或者有没有其他方法可以从文件外部检索规则名称以用作测试参数?

您不能只使用规则名称作为常量吗?在最坏的情况下,我可以这样做,但最好是将其从共享常量文件中删除,而不是保留硬编码的规则名称以及常量NSR-另一种工作方法:。