我嘗試將 pico-container DI 合并到我的框架中,以便我可以在多個步驟定義中使用 @Before 和 @After 標簽。請參閱下面的錯誤。任何建議都會很棒。
You're not allowed to extend classes that define Step Definitions or hooks. class steps.hotelBookingFormPage extends class resources.hooks
import io.cucumber.java.en.Given;
import org.openqa.selenium.internal.ShutdownHooks;
import resources.hooks;
public class hotelBookingFormPage extends hooks {
public hooks base;
hotelBookingFormPage (hooks base) {
base = hooks.startBrowser();
}
@Given("I navigate to the hotel booking form page")
public void iNavigateToTheHotelBookingFormPage() {
base.driver.get("http://hotel-test.equalexperts.io/");
}
uj5u.com熱心網友回復:
io.cucumber.java.InvalidMethodException:不允許擴展定義步驟定義或掛鉤的類。
Cucumber 創建StepDefinition每個場景之前定義的所有類的新實體。然后StepDefinition,只要它需要運行一個步驟,它就會呼叫這些實體之一上的方法。如果我在 a 中宣告一個方法 testclass并擴展到StepDefinition擴展到class那么將創建兩個實體并且測驗方法將在兩個實體上可用,并且黃瓜將無法決定在哪個實體上呼叫該方法。如果繼承到類(具有鉤子方法),則可以使用組合。
當前方式:
class hotelBookingFormPage extends hooks{
public hooks base;
hotelBookingFormPage (hooks base) {
base = hooks.startBrowser();
}
}
更新方式:
class hotelBookingFormPage{
hotelBookingFormPage () {
hooks base = new hooks();
base.startBrowser();
}
}
uj5u.com熱心網友回復:
我相信您正試圖以錯誤的方式使用鉤子。鉤子不是類,而是粘合路徑下任何類中的帶注釋的方法。你不應該直接打電話給他們。
定義鉤子的位置對其運行的場景或步驟沒有影響。
(c) 黃瓜檔案
每次您的場景/步驟完成時,都會呼叫所有鉤子。如果您需要比使用條件鉤子更靈活的控制
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/352790.html
