1
Mockito/Powermock을 사용하여이 코드 조각에 Junit을 작성하도록 도와주세요. 어려운 의한 람다 식과 실행기 서비스 여기스레드 스레드 = 새 스레드 (() -> {/ code} 및 Executorservice.submit (thread). powermock을 사용하여 junit을 작성하는 방법
public class myClass {
ExecutorService executorService;
public void testMethod(String a){
Thread thread = new Thread(() -> {
//logic
a= testDAo.getStatus();
while (true) {
if (Thread.interrupted()) {
break;
}
if (a() != "done" || a() != "fail") {
Thread.yield();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}
} else {
break;
}
}
}
Future task = executorService.submit(thread);
while (!task.isDone()) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}
}
}
}
입력 해 주셔서 감사합니다. 아래 코드를 사용하여이 작업을 수행 할 수 있습니다. 실제 스레드가 실행되도록하고 Mockito와 Powermock을 사용하여 스레드 내부의 모든 논리를 조롱했습니다 .Spy @SpyExecutorService executorService = Executors.newFixedThreadPool (2); –
내 솔직한 의견 : 잘못된 접근. ** 복잡한 제품 코드를 테스트하기 위해 ** 열심히 노력하고 PowerMock을 사용하여 증상을 해결했습니다. 그것이 바로 PowerMock이 나쁜 선택이되는 이유입니다. 사람들이 나쁜 디자인을 유지하도록 장려하기 때문에 ... – GhostCat