在@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结果类型的方法返回值。
任何人都知道是什么导致了这个问题,可以给我一个现成的解决方案吗?
答案 0 :(得分:1)
什么是loggingToPanda()
返回类型?
具有void
返回类型的方法意味着,它不会返回任何内容。如果loggingToPanda()
方法也有void
返回类型,则更改您的代码,如:
@Before
public void loggingToPanda() {
loggingToPanda();
}
答案 1 :(得分:0)
发布之后的一秒钟它已经意识到犯了错误:) 这是解决方案:
@Before
public void setup() throws InterruptedException {
loggingToPanda();
}