Java 如何从另一个类调用方法进行测试
我试图使用java从另一个类调用一个方法。 所以我有一个类从另一个类调用log方法,它工作得很好。 在此之后,我想从另一个类调用另一个方法来获取当前url 这是我的A班和B班 问题:如何调用该方法来获取当前url? 多谢各位Java 如何从另一个类调用方法进行测试,java,selenium-webdriver,Java,Selenium Webdriver,我试图使用java从另一个类调用一个方法。 所以我有一个类从另一个类调用log方法,它工作得很好。 在此之后,我想从另一个类调用另一个方法来获取当前url 这是我的A班和B班 问题:如何调用该方法来获取当前url? 多谢各位 public class A{ private String url; public A(WebDriver driver){ url = driver.getCurrentUrl(); System.out
public class A{
private String url;
public A(WebDriver driver){
url = driver.getCurrentUrl();
System.out.println("The current URL is:"+url);
Util.wait(5);
}
public class B {
@BeforeClass
public static void Log(){
//some code here to check if log is ok
}
@Test
public void A(){
A test1 = new A(driver);
String url2 =test1.A();
}
为字符串url创建一个getter和setter,以便您可以公开访问它:
public String getUrl() {
return this.url;
}
哦,塞特:
public void setUrl(String url) {
this.url = url;
}
这遵循JavaBeans约定,将字段紧密封装到类中,但允许数据不可更改,或者只允许需要的数据
例如,如果需要,您可以说url不能超过16个字符(仅作为示例):
编辑:有一个显示进一步实现的请求。详情如下:
您有两个类,类A和类B。假设它们都在各自的源代码文件中。现在有两个文件如下所示:
String url2 = test1.getUrl();
A.java:
public class A {
private String url;
public A(WebDriver driver){
url = driver.getCurrentUrl();
System.out.println("The current URL is:"+url);
Util.wait(5);
}
public void setUrl(String url) { //THIS IS A SETTER
this.url = url;
}
public String getUrl() { //THIS IS A GETTER
return this.url;
}
}
package com.secondClasses.A;
import com.classes.B;
public class B {
A test1;
Webdriver driver;
String url2;
@BeforeClass
public static void Log(){
//some code here to check if log is ok
}
@Before
public void setUp() {
driver = new WebDriver();
test1 = new A(driver);
}
@After
public void cleanUp() {
driver = null;
test1 = null;
url2 = null;
System.gc();
}
@Test
public void A(){
url2 = test1.getUrl();
assertTrue(url2.equals(url));
}
B.java:
public class A {
private String url;
public A(WebDriver driver){
url = driver.getCurrentUrl();
System.out.println("The current URL is:"+url);
Util.wait(5);
}
public void setUrl(String url) { //THIS IS A SETTER
this.url = url;
}
public String getUrl() { //THIS IS A GETTER
return this.url;
}
}
package com.secondClasses.A;
import com.classes.B;
public class B {
A test1;
Webdriver driver;
String url2;
@BeforeClass
public static void Log(){
//some code here to check if log is ok
}
@Before
public void setUp() {
driver = new WebDriver();
test1 = new A(driver);
}
@After
public void cleanUp() {
driver = null;
test1 = null;
url2 = null;
System.gc();
}
@Test
public void A(){
url2 = test1.getUrl();
assertTrue(url2.equals(url));
}
}
这里发生了一些事情:
我希望这一切都有帮助 首先,您不需要调用
test1.A()
。它不是一个方法,而是类a
的公共构造函数
如果需要从另一个类获取private
variableurl
,可以创建方法:
public String getUrl() {
return this.url;
}
然后在你的课堂上得到它,就像这样:
String url2 = test1.getUrl();
如果我试一下你的例子,它只是打开了一个空白page@user3610075但是这个语句
stringURL2=test1.getUrl()
不是用来向您显示某些内容,而是用来存储变量url
从类A
到变量url2
。要显示在url2
中存储的内容,需要System.out.println(test1.getUrl())代码>。如果url
变量不是空的,它会显示这个变量url
中的内容。谢谢Alexander PodKutin,这对我来说是非常有用的。但我做到了:在类A中,我添加了driver.get(driver.getCurrentUrl());现在我如何在类B中调用它,我忘了告诉我我是webdriver和Java的初学者在这里我不知道该做什么,以及把前三个代码放在哪里。好的,你的类需要在单独的文件中,或者你需要去掉类B的公共访问修饰符。两个类都缺少右括号。几分钟后在我的帖子中看到我的编辑,以获得更多更好的澄清@用户3610075