My project uses JUnit, Mockito, PowerMockito to create a unit test. The code as below:
public class FirstController {
    public void doSomething() {
        ServiceExecutor.execute();
    }
}
public class ServiceExecutor {
    private static final List<Service> services = Arrays.asList(
        new Service1(),
        new Service2(),
        ...
    );
    public static void execute() {
        for (Service s : services) {
            s.execute();
        }
    }   
}
@RunWith(PowerMockRunner.class)
@PrepareForTest({ServiceExecutor.class})
public class FirstControllerTest {
        @Before
        public void prepareForTest() {
            PowerMockito.mockStatic(ServiceExecutor.class);
            PowerMockito.doNothing().when(ServiceExecutor.class)
        }
        @Test
        public void doSomethingTest() {
            FirstController firstController = new FirstController();
            firstController.doSomething();
            PowerMockito.verifyStatic(ServiceExecutor.class, Mockito.times(1));
        }   
    }
The full source code of this issue: https://github.com/gpcodervn/Java-Tutorial/tree/master/UnitTest
I want to verify the ServiceExecutor.execute() method which was run. 
I tried to mock ServiceExecutor and doNothing() when the execute() method is called. But I have a problem with the private static final List<Service> services in the ServiceExecutor. It always constructs the new instance for each Service. Each service is longer to create the new instance and I don't know how many Service they will have later if I mock each Service.
Do you have any idea to verify ServiceExecutor.execute() in FirstController without run any method in ServiceExecutor?
 
     
    