Получить мимо статического поля jUnit:s @BeforeClass

Есть ли способ обойти классическую проблему

public class SomeClass implements SomeOtherInterface {

  private static SomeInterface some;

  public SomeClass(SomeInterface someInterface) {
    some = someInterface;
  }

  @BeforeClass
  public static void doSomethingWithInterface() {
    System.out.println(someInterface.someValue()); // prints null
  }
}

кроме обмена

System.out.println(someInterface.someValue()); // prints null

с

System.out.println(SomeInterface.someValue());

если someValue является статическим. Проблема в том, что это для фреймворка (расширения), и пользователь должен предоставить реализацию SomeInterface.

1 ответ

Вы устанавливаете значение static член просто в конструкторе. Поэтому, прежде чем не иметь хотя бы один объект этого класса, вы не сможете получить доступ к someValue(), В джунит @Before может быть полезна аннотация, которая выполняется перед каждым тестом и не static,

Другие вопросы по тегам