如何存储来自Question 的值,以便在我的剧本安抚黄瓜的剧本的后续步骤中使用它

问题描述 投票:0回答:1

我有一种情况,我应该从确认页面获取订单号,然后在下一步中比较是否在我的订单中显示了相同的编号。

在这种情况下,一旦获得确认页,我需要找到一种方法来存储具有目标值的var,但是无法在我的Question类型的方法中做到这一点,知道吗?

我有这堂课

public class ConfirmationPageGrid implements Question<ElementAvailability> {

    public static Question<String> getOrderNumber() {
        return actor -> Text.of(CheckoutForm.CONFIRMATION_ORDER_NUMBER).viewedBy(actor).asString();
    }   

    public static Question<String> getWatchSKU() {
        return actor -> Text.of(CheckoutForm.WATCH_SKU_CONFIRMATION).viewedBy(actor).asString();
    }

    @Override
    public ElementAvailability answeredBy(Actor actor) {
        return ElementAvailability.from(
                the(Visibility.of(CheckoutForm.PRODUCTS_BLOCK).viewedBy(actor))
        );
    }   

}

稍后,我想在这里使用它:

@Then("^I see order details in my orders tab$")
    public void i_see_order_details_in_my_orders_tab() {
        theActorInTheSpotlight().should(seeThat(ConfirmationPage.orderLabel(), is(Available)));
        theActorInTheSpotlight().should(seeThat(ConfirmationPageGrid.getOrderNumber(), containsString(var that i'll get as answer in my question)));
    }

问题是带有确认号的标签在我要检查和比较的那一刻没有启用并显示,我需要找到一种在显示时如何存储它的方法,以便在以后的步骤中使用它。

谢谢

serenity-bdd cucumber-serenity
1个回答
0
投票

我认为您可以使用构造函数在Question中创建私有字段。但您可以更具体还是让我看看完整的代码?

© www.soinside.com 2019 - 2024. All rights reserved.