У меня есть класс обслуживания Spring, где я отправляю несколько задач Executor с помощью метода @PostConstruct.Я написал несколько тестов, но их поведение не одинаково во всех прогонах.Иногда все проходит, иногда мало, но условие выполняется.
Class A {
Private final ExecutorService executorService = Executors.newCachedThreadPool();
private final Object obj1
private final Object obj2;
@Autowired
public A(Object obj1, Object obj2) {
this.obj1 = obj1;
this.obj2 = obj2;
}
@PostConstruct
public void process() {
executorService.submit(() -> {
obj1.doSomething();
obj2.doOtherthing();
});
}
//Some other methods.....
}
Class ATest {
A a;
@Mock
Object obj1;
@Mock
Object obj2;
@Before
public void setUp() {
a = new A(Obj1, Obj2);
}
@Test
public void processTest {
doNothing.when(obj1.doSomething);
doNothing.when(obj1.doOtherthing);
a.process();
verify(obj1).doSomething();
verify(obj2).doOtherthing();
}
@Test
public void otherTest {
//some test
}
}
Поэтому я хочу иметь доступ к executorService в классе тестирования, чтобы я мог отслеживать, что происходит, и почему тесты ведут себя по-разному.
Любые предложения или рекомендации будут полезны.