能否重写Maven引入框架中的Cucumber Step Definition?
能否重写Maven依赖框架中的Cucumber Step Definition?
完全可行,Cucumber支持通过优先级机制让项目内的Step Definition覆盖依赖包中的同名步骤。
具体实现步骤
- 在你的项目中创建一个新的Step Definition类,使用和依赖框架完全相同的注解表达式:
@When("The user navigates to the basket") public void theUserNavigatesToBasket() { // 这里编写你的自定义业务逻辑 customBasketHandler.navigateToCustomBasket(); }
- 确保这个类在Cucumber的扫描范围内(默认情况下,项目源码目录下的类都会被自动扫描,无需额外配置)
原理说明
Cucumber加载Step Definition时,会优先扫描并加载项目源码中的类,之后才会处理依赖包中的类。当存在匹配表达式完全一致的步骤时,项目内的实现会被优先调用,不会触发冲突错误(前提是你的项目中只有一个该表达式的Step Definition)。
如果项目内出现多个相同表达式的Step Definition,才会抛出AmbiguousStepDefinitionsException异常,只要保证项目内唯一,就能安全覆盖依赖中的原有实现。
内容的提问来源于stack exchange,提问作者Jefe infiltrado
相关产品推荐
相关产品推荐

