在不同的测试中使用相同的字符串时出错
Error when using the same string in different tests
我有以下场景:
我在 Selenium Webdriver Java.
中执行了几个测试 (@Test) 和 Cucumber 测试
测试进行得很顺利。 但是,我想将存储在一个@Test (public void) 中的字符串保留在另一个@Test (public void) 中。我不能。
有人能帮忙吗?
第一次测试:
@Test
public void testDocuments() {
OneClass oneClass = new OneClass();
oneClass.one();
oneClass.two();
}
第二次测试:
@Test
public void testDocuments() {
OneClass oneClass = new OneClass();
oneClass.one();
oneClass.two();
}
方法一
public String one() {
if (this.cnpj == null) {
this.cnpj = add.cnpj(false);
} else {
}
return this.cnpj;
}
两个测试我希望你使用相同的生成字符串!!!!
期待并提前致谢!
如果我理解正确,您需要 this.cnpj
值才能在第二次测试中可用?
每次你做 new OneClass()
,它都会创建一个 new 它的实例。
因此您可以执行以下操作之一:
- 使用单例实例
OneClass
- 在
OneClass
中创建 cnpj
一个 static
字段
我不确定你的方法 one() 做了什么,但假设你想对两个不同的测试使用相同的值,为什么不这样做:
OneClass oneClass = new OneClass();
String yourGeneratedString = oneClass.one();
// First test
@Test
public void testDocuments() {
yourFunction(yourGeneratedString);
}
// Second test
@Test
public void testDocuments2() {
yourOtherFunction(yourGeneratedString);
}
如果我没理解错的话,你想共享从一个测试到第二个测试的数据。如果你使用 testNG 那么你可以这样做。
import org.testng.ITestContext;
import org.testng.annotations.Test;
public class MyTest {
@Test
public void testOne(ITestContext context){
context.setAttribute("myKey", "myValue");
}
@Test
public void testTwo(ITestContext context){
String valueFromTestOne = (String) context.getAttribute("myKey");
System.out.println("My key = " + valueFromTestOne);
}
}
我有以下场景: 我在 Selenium Webdriver Java.
中执行了几个测试 (@Test) 和 Cucumber 测试测试进行得很顺利。 但是,我想将存储在一个@Test (public void) 中的字符串保留在另一个@Test (public void) 中。我不能。
有人能帮忙吗?
第一次测试:
@Test
public void testDocuments() {
OneClass oneClass = new OneClass();
oneClass.one();
oneClass.two();
}
第二次测试:
@Test
public void testDocuments() {
OneClass oneClass = new OneClass();
oneClass.one();
oneClass.two();
}
方法一
public String one() {
if (this.cnpj == null) {
this.cnpj = add.cnpj(false);
} else {
}
return this.cnpj;
}
两个测试我希望你使用相同的生成字符串!!!!
期待并提前致谢!
如果我理解正确,您需要 this.cnpj
值才能在第二次测试中可用?
每次你做 new OneClass()
,它都会创建一个 new 它的实例。
因此您可以执行以下操作之一:
- 使用单例实例
OneClass
- 在
OneClass
中创建
cnpj
一个 static
字段
我不确定你的方法 one() 做了什么,但假设你想对两个不同的测试使用相同的值,为什么不这样做:
OneClass oneClass = new OneClass();
String yourGeneratedString = oneClass.one();
// First test
@Test
public void testDocuments() {
yourFunction(yourGeneratedString);
}
// Second test
@Test
public void testDocuments2() {
yourOtherFunction(yourGeneratedString);
}
如果我没理解错的话,你想共享从一个测试到第二个测试的数据。如果你使用 testNG 那么你可以这样做。
import org.testng.ITestContext;
import org.testng.annotations.Test;
public class MyTest {
@Test
public void testOne(ITestContext context){
context.setAttribute("myKey", "myValue");
}
@Test
public void testTwo(ITestContext context){
String valueFromTestOne = (String) context.getAttribute("myKey");
System.out.println("My key = " + valueFromTestOne);
}
}