Как я могу передать параметр Dynami c, который я создам с помощью некоторой случайной библиотеки, в testNg xml? - PullRequest
0 голосов
/ 05 августа 2020

Я хочу передать параметр Dynami c в тестовый пример из testng xml, мой параметр выглядит примерно так:

String dynamicParameter=generateRandomStringForMail();

Вот мой тестовый пример:

   @Test()
    public void customerCreatorAllProducts () throws Exception {
            setup();
            Functions.pages.LoginPage login = PageFactory.initElements(driver, Functions.pages.LoginPage.class);
            login.navigateRegisterPage().createFixedPasswordCustomerRequiredFields(dynamicParameter);
    }

Я буду использовать этот параметр и в других случаях, как я могу сделать это из testng. xml или с чем-то еще?

1 Ответ

1 голос
/ 05 августа 2020

Я не знаком с тестированием. xml, но Mockito сразу приходит на ум для этого: http://mockito.org.

  1. добавьте Mockito в свой проект (например, через страницу build.gradle)
  2. добавьте импорт в тестовый файл:
import static org.mockito.Mockito.*;
в вашем тестовом классе создайте имитацию класса, который имеет метод generateRandomStringForMail (). В моем текущем проекте у меня есть
DefaultFileService mockFileService = mock(DefaultFileService.class);
определите, что должен возвращать метод в этих условиях тестирования, например
when(mockFileService.generateRandomFileName()).thenReturn("fileName");
Всякий раз, когда вашим тестам необходимо использовать результат рассматриваемого метода, вы можете использовать «fileName», потому что вы сказали тестовой среде дать этот ответ. В моем проекте есть метод обновления файла изображения, связанного с элементом инвентаризации, который включает использование DefaultFileService для генерации случайного имени файла, а затем передачу файла изображения и нового имени файла в DefaultFileService для сохранения файла в системе. Мой тестовый код не может увидеть или угадать, какое имя файла на самом деле будет создано, но моя строка «когда» выше решила эту проблему для целей тестирования моего класса QuiltController:
quiltController.update(data, mockFile);
verify(mockFileService).save(mockFile, "fileName"); // confirms the save() method was called with the expected parameters

It кажется очень похожим на то, что вы пытаетесь сделать, поэтому, надеюсь, это поможет вам продолжить, если вы действительно хотите изучить Mockito. Не удивляйтесь, если вам потребуется реорганизовать часть вашей работы, чтобы сделать ее более тестируемой. Я это сделал, и в результате получил лучший код. Дайте ему go :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...