JGiven 开源项目快速入门指南
JGivenBehavior-Driven Development in plain Java项目地址:https://gitcode.com/gh_mirrors/jg/JGiven
JGiven 是一个面向Java开发者的友好且实用的行为驱动开发(BDD)工具,它允许开发者通过流畅的领域特定API来编写测试场景,并生成可供业务专家阅读的报告,作为活的文档。
1. 项目目录结构及介绍
JGiven 的仓库展现了一套模块化的架构,以下是一些关键组件的概述:
-
根目录: 包含了整个项目的管理文件。
README.md
: 项目简介与快速上手说明。LICENSE
: 许可证文件,表明使用的是Apache 2.0许可。gradle.properties
,build.gradle
: Gradle构建配置文件。src/main/java
和src/test/java
: 源代码和测试代码的位置。
-
核心模块 (
jgiven-core
): 提供JGiven的核心实现,是所有其他模块的基础。 -
框架集成模块
jgiven-junit
,jgiven-junit5
: 分别提供了对JUnit 4/5的整合。jgiven-testng
: 针对TestNG的集成,让JGiven可以应用于基于TestNG的测试环境中。
-
报告模块 (
jgiven-html5-report
): 负责从测试执行期间生成的JSON文件编译成易于理解的HTML5报告。 -
其他支持模块: 如
jgiven-spring
提供了Spring框架的集成,允许舞台类作为Spring bean管理等。 -
示例与插件: 诸如
example-projects
,jgiven-gradle-plugin
,jgiven-maven-plugin
用于展示如何使用以及提供构建系统集成。
2. 项目的启动文件介绍
在实际应用中,由于JGiven是作为测试库使用的,没有传统的“启动文件”。但如果你指的是运行JGiven示例或集成到你的项目中,通常的起点是在使用JUnit或TestNG进行单元测试的测试类上。比如,一个典型的测试类可能会以@Test
注解开始,结合JGiven的步骤定义(Stage classes)来编排场景。
示例代码可能看起来像这样:
import com.tngtech.jgiven.junit.ScenarioTest;
import com.tngtech.jgiven.stage.GivenStage;
import com.tngtech.jgiven.stage.ThenStage;
import com.tngtech.jgiven.stage.WhenStage;
public class PancakeFryingScenarioTest extends ScenarioTest<GivenStage, WhenStage, ThenStage> {
// 测试方法定义场景步骤
@Test
public void a_pancake_can_be_fried_out_of_an_egg_milk_and_flour() {
given().an_egg().and()
.some_milk().and()
.the_ingredient("flour");
when().the_cook_mangles_everything_to_a_dough().and()
.the_cook_fries_the_dough_in_a_pan();
then().the_resulting_meal_is_a_pancake();
}
}
此代码并非直接“启动”项目,而是在JUnit测试运行时被调用,从而执行并验证BDD场景。
3. 项目的配置文件介绍
主要配置文件
build.gradle
: Gradle构建脚本,这里配置了项目的依赖关系、任务、编译规则等。gradle.properties
: 存储Gradle构建过程中的属性值,如版本号或项目默认设置。- 对于特定的环境配置或更细粒度的调整,配置可能存在于各个模块的子目录下,例如报告样式或插件配置等。
请注意,每个具体模块内部可能有其特定配置文件,但它们更多服务于模块自身的构建和运行逻辑,而非整个项目的启动配置。实际应用JGiven时,开发人员需在自己的项目中引入JGiven作为依赖,并按需调整测试类的配置,以适应特定的测试框架和环境需求。
JGivenBehavior-Driven Development in plain Java项目地址:https://gitcode.com/gh_mirrors/jg/JGiven