JGiven 本地化介绍词

JGiven localize intro word

我正在从事一个以法语定义域的项目。我正在使用 JGiven 编写测试,并且我正在尝试完全用法语获取报告。我通过在我的测试 classes.

中继承 SpringScenarioTest 来使用 Spring 测试基础设施

这是我所做的一个例子:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class TrainDateTest extends SpringScenarioTest<GivenTrainDate, WhenTrainDate, ThenTrainDate> {

    @Test
    @As("Création d'un train date")
    public void creation_d_un_train_date() {
        given().un_train_date();
        when().je_lance_la_creation_du_train_date();
        then().le_train_date_resultant_doit_avoir_un_id_en_base();
    }
}

我发现如何使用 Stage classes 中的 @IntroWord 注释来翻译像 and()with() 这样的介绍词,但是如何才能我翻译 given()when()then() 介绍词?

问题似乎是这些介绍词是由 ScenarioTestBase class 创建的 Scenario class 定义的,我找不到在不重写整个 class 层次结构的情况下覆盖此行为的方法。

有什么办法吗?

谢谢

是的,你可以。您可以查看已经为德语提供此功能的 com.tngtech.jgiven.lang.de.SzenarioTestBasis。只需创建 SpringScenarioTest 的子类并定义您需要的方法如下:

public class FrenchSpringScenarioTest<ETANTDONNE, QUAND, ALORS> extends
    SpringScenarioTest<ETANTDONNE, QUAND, ALORS> {

    public ETANTDONNE etant_donne() {
         return getScenario().given( "etant donné" );
    } 

    public QUAND quand() {
         return getScenario().when( "quand" );
    } 

    public ALORS alors() {
         return getScenario().then( "alors" );
    } 
}