使用junit测试drools规则的最佳实践是什么?
到目前为止,我们使用 junit 和 dbunit 来测试规则。我们将样本数据放入 hsqldb。我们有几个规则包,到项目结束时,很难做出好的测试输入来测试某些规则而不触发其他规则。
所以确切的问题是如何将 junit 中的测试限制为一个或多个特定的测试规则?
最佳答案
我个人使用单元测试来测试孤立的规则。我不认为它有什么太大的问题,只要你不陷入一种错误的安全感,即你的知识库正在发挥作用,因为孤立的规则正在发挥作用。测试整个知识库更为重要。
您可以使用 AgendaFilter 编写隔离测试和无状态 session
StatelessSession session = ruleBase.newStatelessSesssion();
session.setAgendaFilter( new RuleNameMatches("<regexp to your rule name here>") );
List data = new ArrayList();
... // create your test data here (probably built from some external file)
StatelessSessionResult result == session.executeWithResults( data );
// check your results here.
代码来源:http://blog.athico.com/2007/07/my-rules-dont-work-as-expected-what-can.html
关于junit - 使用junit进行Drools测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3862389/