使用junit-drools进行JBoss Drools单元测试
最近,我一直在大量使用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
使用junit-drools进行JBoss Drools单元测试相关推荐
- jboss junit_使用junit-drools进行JBoss Drools单元测试
jboss junit 最近,我一直在大量使用JBoss Drools进行项目. 我不是Drools专家-我也不太相信这个框架,或者可能不是只相信该项目中的特定用例-我发现很难为基于Drools的业务 ...
- JBoss Drools –入门
这篇文章是关于我如何掌握JBoss Drools的 . 其背后的原因是:SAP收购了我公司当前的规则引擎,而Drools是我们将寻找的另一种选择,只要有人掌握了概念验证的技能即可. 尽管似乎有大量的文 ...
- 学习笔记:首次进行JUnit+Ant构建自动的单元测试(一)
指导博客:https://blog.csdn.net/Cceking/article/details/51692010 基于软件测试的需求,使用JUnit+Ant构建自动的单元测试. IDE:ecli ...
- junit进行单元测试_通过JUnit规则轻松进行AppEngine单元测试
junit进行单元测试 by Ramesh Lingappa 通过拉梅什·林加帕(Ramesh Lingappa) 通过JUnit规则轻松进行AppEngine单元测试 (AppEngine unit ...
- 规则引擎JBoss Drools简介
一.简介 项目官网:Drools - Drools - Business Rules Management System (Java™, Open Source) 源码:GitHub - kiegro ...
- junit 内部类测试_Springboot 使用单元测试
本文公众号来源:美码师作者:美码师本文已收录至我的GitHub 目标 了解 单元测试的背景 了解如何 利用 springboot 实现接口的测试 了解如何 利用 mokito 做代码的 mock 一. ...
- drools dmn_使用Drools的DMN运行时示例
drools dmn 正如去年宣布的那样 ,Drools 7.0将在合规级别3对DMN模型提供全面的运行时支持. 在撰写本文时,运行时实现已完成,并且该团队现在正在努力进行改进,以进行错误修复和用户友 ...
- maven junit测试_使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开
maven junit测试 为什么单元测试应与集成测试分开运行 单元测试级别的TDD相当简单,因为单元测试中的类要么没有复杂的依赖关系,要么使用模拟框架(例如Mockito)来模拟依赖关系. 但是,当 ...
- 使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开
为什么单元测试应与集成测试分开运行 单元测试级别的TDD相当简单,因为单元测试中的类要么没有复杂的依赖关系,要么使用模拟框架(例如Mockito)来模拟依赖关系. 但是,当我们进入集成测试时,TDDS ...
最新文章
- 函数不可访问_C++之访问控制与继承
- 白话Elasticsearch54-数据建模之通过【应用层join】或者【数据冗余】实现实现用户与博客的关联
- [zz]volatile
- C#中容器控件GroupBox、Panel、TabControl
- 如何解决 SQL Server 安装程序中的 COM+ 系统配置检查失败问题
- C# Span 源码解读和应用实践
- eplan 2.7安装过程中multikey黄色感叹号解决办法
- Android截图命令screencap
- 科目三考试技巧全总结
- 用户分层之RFM模型
- 4 Day:MBR使用硬盘
- 数据防泄密系统,你了解多少呢?
- 关于网页图标添加shortcut icon与icon
- Mifare Ultra Light 非接触式IC卡
- 11个免费高清图片下载站
- MybatisX插件的使用
- 2022大学生就业指导答案——雷五明、雷辉等
- Redis学习记录(一)
- 官方途径 | 知网、维普、万方、中文在线免费下载,不限次!
- 牛客刷题记录之语法入门循环结构篇1.0
热门文章
- Mybatis传入参数类型为ListIntergert作为条件进行查询
- 机器人点焊枪接线_用于焊接机器人焊枪工具点及工件坐标系标定装置及方法与流程...
- Spring boot(七):Spring boot+ mybatis 多数据源最简解决方案
- apache.camel_Apache Camel 3.1 – XML路由的快速加载
- gwt格式_GWT HTTP请求替代方案
- 敏捷中gwt含义_在GWT中序列化/反序列化Json
- hibernate jpa_使用Hibernate(JPA)一键式删除
- spring boot注释_使用Spring Boot和注释支持配置Spring JMS应用程序
- Spring Boot删除嵌入式Tomcat服务器,启用Jetty服务器
- 使用Spring Rest和Spring Data JPA和H2以及Spring Boot示例的Restful API