如何在@Before注释下调用方法

时间:2015-09-15 13:30:57

标签: java exception selenium junit automated-tests

在@Before junit注释下从另一个类调用方法时遇到麻烦。

的Class1:

public class welcomePageTests extends SystemLogin {
    @Page
    system system;
    protected TestHarness getTestHarness() {
    return TestHarness.getInstance();        }
        private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(welcomePageTests.class);

    @Before
    loggingToSystem();

    @Test
    public void shouldVerifyPageLayoutAfterFirstRunAndLayoutConsistency() throws Exception {
    clickOnByLocator(welcome.homeButton);
    assertThatIsDisplayedByLocator(welcome.usersButton);
    mainPageLayout.assertMainPageElements(welcome);
    clickOnByLocator(welcome.usersButton);
    mainPageLayout.assertMainPageElements(welcome);
    clickOnByLocator(welcome.loginButton);
    mainPageLayout.assertMainPageElements(welcome);
}

等级2:

public class SystemLogin extends HelperMethods {
    protected TestHarness getTestHarness() {
        return TestHarness.getInstance();
    }
    @Page
    system system;

        public void loggingToSystem() throws InterruptedException {
        goTo(PageRunner.class);
        getDriver().manage().window().maximize();
        Thread.sleep(2000);
        system.userLogin.text("mr");
        system.password.text("password");
        system.signInbutton.click();
    }
}

问题是我无法在@Before注释下直接调用loggingToSystem方法(例如@Test注释下工作正常)。

获取无效的方法声明错误

同样地试过:

@Before
public void loggingToSystem() {return loggingToSystem();}

但是在这种情况下,获取的错误无法从具有void结果类型的方法返回值。

任何人都知道是什么导致了这个问题,可以给我一个现成的解决方案吗?

2 个答案:

答案 0 :(得分:1)

什么是loggingToPanda()返回类型?

具有void返回类型的方法意味着,它不会返回任何内容。如果loggingToPanda()方法也有void返回类型,则更改您的代码,如:

@Before
public void loggingToPanda() {
                loggingToPanda();
}

答案 1 :(得分:0)

发布之后的一秒钟它已经意识到犯了错误:) 这是解决方案:

@Before
public void setup() throws InterruptedException {
    loggingToPanda();
}