jboss junit_使用junit-drools进行JBoss Drools单元测试
jboss junit
最近,我一直在大量使用JBoss Drools進行項目。 我不是Drools專家-我也不太相信這個框架,或者可能不是只相信該項目中的特定用例-我發現很難為基于Drools的業務規則編寫簡單,可維護的單元測試 。
這就是junit-drools誕生的方式–簡單的幫助程序庫,使您無需編寫太多樣板代碼即可編寫Drools測試(如在Drools JBoss Rules 5.X開發人員指南示例中所見 )。
安裝
將Maven存儲庫和依賴項添加到pom.xml:
<repository><id>maciejwalkowiak.pl</id><url>https://github.com/maciejwalkowiak/maven-repo/raw/releases/</url> </repository><dependency><groupId>pl.maciejwalkowiak</groupId><artifactId>junit-drools</artifactId><version>1.0</version><scope>test</scope> </dependency>用法
junit-drools提供了DroolsJUnitRunner類,該類處理您為設置知識庫和Drools會話而需要編寫的大多數樣板代碼。
讓我們考慮以下示例:
@RunWith(DroolsJUnitRunner.class) @DroolsFiles(value = "helloworld.drl", location = "/drl/") public class AppTest {@DroolsSessionStatefulSession session;@Testpublic void should_set_discount() {Purchase purchase = new Purchase(new Customer(17));session.insert(purchase);session.fireAllRules();assertTrue(purchase.getTicket().hasDiscount());}@Testpublic void should_not_set_discount() {Purchase purchase = new Purchase(new Customer(22));session.insert(purchase);session.fireAllRules();assertFalse(purchase.getTicket().hasDiscount());} }- @RunWith(DroolsJUnitRunner) –用于測試Drools規則的JUnit運行器
- @DroolsFiles –設置drl文件的位置(可以是一個或多個)– drl文件必須位于類路徑上– @ DroolsFiles#location相對于src/test/resources或src/main/resources
- @DroolsSession –在執行之前自動將Drools會話注入到您的測試中
在Github上項目的src / test目錄中找到帶drl文件的完整示例。
如果您不想使用DroolsJUnitRunner,例如因為您已經想使用Mockito或SpringRunner,則可以在@Before方法中初始化Drools對象:
@DroolsFiles(value = "helloworld.drl", location = "/drl/") public class BeforeMethodBasedTest {@DroolsSessionStatefulSession session;@Beforepublic void initDrools() throws Exception {new DroolsInjector().initDrools(this);}@Testpublic void should_set_discount() {Purchase purchase = new Purchase(new Customer(17));session.insert(purchase);session.fireAllRules();assertTrue(purchase.getTicket().hasDiscount());} } 我對Drools的經驗不是很豐富,因此該庫實際上可以完成我正在處理的項目中需要的工作。 歡迎您通過向Github項目發送拉取請求來添加您的改進。
翻譯自: https://www.javacodegeeks.com/2013/11/jboss-drools-unit-testing-with-junit-drools.html
jboss junit
總結
以上是生活随笔為你收集整理的jboss junit_使用junit-drools进行JBoss Drools单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关闭防火墙linux命令(防火墙linu
- 下一篇: jersey put 服务_项目学生:带