How do you unit test Jboss Rules (Drools) rules?
-
05-07-2019 - |
Question
I have written a few Drools rules for my Seam application and am wondering how I go about unit testing these. Does anybody have any sample code that can show me how to go about doing this?
Solution
Add the following code to a unit test (JUnit, TestNG, etc):
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl(new InputStreamReader(getClass().getResourceAsStream( "rules.drl")));
PackageBuilderErrors errors = builder.getErrors();
Assert.assertEquals(0, errors.getErrors().length);
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(pkg);
StatefullSession session = ruleBase.newStatefulSession(false);
MyFactObject myFact = new MyFactObject();
session.insert(myFact);
session.fireAllRules();
OTHER TIPS
Consider some testing 'sugar' with a Junit TestRule
library.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow