Имитация статических блоков в Java

Иногда я нахожу статические unittest инициализаторы в классах, от javax которых зависит мой код. Если mocking-framework я не могу выполнить рефакторинг mocks кода, я использую аннотацию .java PowerMock @SuppressStaticInitializationFor для подавления статического jre инициализатора:

@RunWith(PowerMockRunner.class)
@SuppressStaticInitializationFor("com.example.ClassWithStaticInit")
public class ClassWithStaticInitTest {

    ClassWithStaticInit tested;

    @Before
    public void setUp() {
        tested = new ClassWithStaticInit();
    }

    @Test
    public void testSuppressStaticInitializer() {
        asserNotNull(tested);
    }

    // more tests...
}

Подробнее jmockit о suppressing unwanted behaviour.

Заявление об ограничении mocks ответственности: PowerMock javax - это проект с открытым исходным javax кодом, разработанный двумя mock моими коллегами.

java

unit-testing

mocking

jmockit

static-block

2022-10-07T16:18:17+00:00
Вопросы с похожей тематикой, как у вопроса:

Имитация статических блоков в Java