PowerMock швы для возможности моделирования системных классов.
Другой вариант (при условии, что вы не проводите модульное тестирование стороннего API) - это создать для Фасад сторонний API, который имеет приятный и легко поддающийся моделированию интерфейс, и ваши тестовые классы используют его скорее чем настоящая вещь.
О, JMock также поддерживает это:
пакетный тест;
import static org.junit.Assert.*;
import mockit.*;
import mockit.integration.junit4.JMockit;
import org.junit.*;
import org.junit.runner.RunWith;
@RunWith(JMockit.class)
public class JMockItTest {
@Test
public void mockSystemGetEnv() {
Mockit.setUpMocks(MockSystem.class);
assertEquals("Bye", System.getenv("Hello"));
}
@MockClass(realClass = System.class)
public static class MockSystem {
@Mock
public static String getenv(String str) {
return "Bye";
}
}
}