Перейти к содержимому

Фотография

Нужна помощь по BeforeClass TestNg dataProvider

BeforeClass TestNg dataProvider

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Drenjy

Drenjy

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Самойлов Андрей Евгеньевич


Отправлено 04 июля 2017 - 19:28

 

Привет, форумчане. Снова нужна ваша помощь!.

 

Есть тесты, для которых использую дата провайдер, получающий данные из Json файла.

Хотелось бы перед начало класса, запускать проверку на существование данных.

Вот как у меня построено.

public class DocumentTests extends TestBase {
    private final BillData billData;
    AddCustomerBill addCustomerBill = new AddCustomerBill();

    @Factory(dataProviderClass = DataProviderForTests.class, dataProvider = "validBillsFromJson")
    public DocumentTests(BillData billData){
        this.billData=billData;
    }
    @BeforeClass
    public void checkBillForUser(BillData billData) throws InterruptedException {
        app.getUserHelper().loginAs(USER);
        if (app.getUserHelper().userHasBill(billData.getNumber() + " " + billData.getCompanyname())) {
            return;
        }
        app.getUserHelper().logout();
        addCustomerBill.addPersonalAccount(billData);
    }

    @Test(dataProviderClass = DataProviderForTests.class, dataProvider = "validBillsFromJson")
    public void selectBill(BillData billData) {
            app.getUserHelper().loginAs(USER);
            app.getSubdivisionPage().openSubdivisionWin();
            app.getSubdivisionPage().searchBill(billData.getNumber());
            app.getSubdivisionPage().selectSubdivisionBy(billData.getNumber() + " " + billData.getCompanyname());
        if (app.getUserHelper().userHasBill(billData.getNumber() + " " + billData.getCompanyname()) == false) {
            System.out.println("Счёт не найден: " + billData);
        }
    }

    @Description("Проверяем наличие элементов на странице")
    @Test(dataProviderClass = DataProviderForTests.class, dataProvider = "validBillsFromJson")
    public void assertOneTimeOrderPageElements(BillData billData) {
        app.getUserHelper().loginAs(USER);
        selectBill(billData);
            app.getSubdivisionPage().closeWindow();
            app.getNavigationHelper().toDocuments();
.....
}

@BeforeTest как я понимаю, не позволяет использовать параметры.

@Factory отрабатывает нормально, а после всё падает с ошибкой:

org.testng.TestNGException: 
Can inject only one of <ITestContext, XmlTest> into a BeforeClass annotated checkBillForUser.

Подскажите пожалуйста, какое решение более верное?


  • 0

#2 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 05 июля 2017 - 07:41

Если конструктор отрабатывает, что мешает просто использовать this.billData в методе?
  • 0



Темы с аналогичным тегами BeforeClass, TestNg, dataProvider

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных