日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jboss junit_使用junit-drools进行JBoss Drools单元测试

發(fā)布時(shí)間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jboss junit_使用junit-drools进行JBoss Drools单元测试 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

jboss junit

最近,我一直在大量使用JBoss Drools進(jìn)行項(xiàng)目。 我不是Drools專家-我也不太相信這個(gè)框架,或者可能不是只相信該項(xiàng)目中的特定用例-我發(fā)現(xiàn)很難為基于Drools的業(yè)務(wù)規(guī)則編寫簡單,可維護(hù)的單元測試 。

這就是junit-drools誕生的方式–簡單的幫助程序庫,使您無需編寫太多樣板代碼即可編寫Drools測試(如在Drools JBoss Rules 5.X開發(fā)人員指南示例中所見 )。

安裝

將Maven存儲庫和依賴項(xiàng)添加到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類,該類處理您為設(shè)置知識庫和Drools會話而需要編寫的大多數(shù)樣板代碼。

讓我們考慮以下示例:

@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規(guī)則的JUnit運(yùn)行器
  • @DroolsFiles –設(shè)置drl文件的位置(可以是一個(gè)或多個(gè))– drl文件必須位于類路徑上– @ DroolsFiles#location相對于src/test/resources或src/main/resources
  • @DroolsSession –在執(zhí)行之前自動將Drools會話注入到您的測試中

在Github上項(xiàng)目的src / test目錄中找到帶drl文件的完整示例。

如果您不想使用DroolsJUnitRunner,例如因?yàn)槟呀?jīng)想使用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的經(jīng)驗(yàn)不是很豐富,因此該庫實(shí)際上可以完成我正在處理的項(xiàng)目中需要的工作。 歡迎您通過向Github項(xiàng)目發(fā)送拉取請求來添加您的改進(jìn)。

參考:來自JCG合作伙伴 Maciej Walkowiak的junit- drool的JBoss Drools單元測試,來自Software Development Journey博客。

翻譯自: https://www.javacodegeeks.com/2013/11/jboss-drools-unit-testing-with-junit-drools.html

jboss junit

總結(jié)

以上是生活随笔為你收集整理的jboss junit_使用junit-drools进行JBoss Drools单元测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。