Концепция статического и нестатического одинакова в Java и TestNG.
Для нестатического всегда требуется контекст, на который ссылается это.Статика не требует контекста, но вы можете использовать имя класса.Использование имени класса не требуется, если ваш код находится внутри этого класса (например, BaseClass.config).То же правило применяется к методам (т. Е. BaseClass.setup () в вашем коде, если только установка не объявлена как статическая).
Если вы добавите нестатический метод setup () с аннотацией @Before, вы должны иметьдва метода, один из которых требует контекста, а другой нет.Чтобы сделать ваш код более читабельным, я предлагаю переименовать ваш статический метод setup () в setupClass () .
Поскольку ваш метод аннотирован @BeforeClass, он должен быть статическим.Это связано с классом, а не с контекстом.Это неявно требуется для @ BeforeClass.
- @ BeforeClass требует статический метод
- @ Before требуется нестатический метод
Вы всегда можете получить доступполе и методы, которые не требуют контекста из методов, которые требуют контекста.Имейте в виду, что поля, которые не имеют контекста, совместно используются статическими и нестатическими методами и даже между различными нестатическими методами, имеющими другой контекст.
Основное правило - придерживаться одного и того же модификатора, либо не-статический или статический, для полей и методов.