#java #selenium #selenium-webdriver #junit #automation
#java #selenium #selenium-webdriver #junit #автоматизация
Вопрос:
У меня следующий сценарий: я выполняю несколько тестов (@Test) и тесты в Cucumber, в Selenium Webdriver, Java.
Тесты проходят хорошо. Однако я хочу оставить строку, сохраненную в одном @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;
}
В обоих тестах я хочу, чтобы вы использовали одну и ту же сгенерированную строку!!!!
Я с нетерпением жду и заранее благодарю!
Комментарии:
1. @marc Помнишь меня? lol Теперь проблема в том, чтобы сохранить строку в разных тестах, вы можете мне помочь? Спасибо!
Ответ №1:
Я не уверен, что делает ваш метод 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);
}
Комментарии:
1. Большое вам спасибо, @Michael S !!! Ошибка устранена!!! Это сработало!
Ответ №2:
Если я правильно понимаю, вам нужно, чтобы this.cnpj
значение было доступно во втором тесте? Каждый раз, когда вы это делаете new OneClass()
, создается новый ее экземпляр.
Итак, вы можете выполнить одно из следующих действий:
- Используйте одноэлементный экземпляр
OneClass
- Создайте
cnpj
static
поле внутриOneClass
Ответ №3:
Если я правильно понимаю, вы хотите передать данные из одного теста во второй. Если вы пользователь 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);
}
}