반응형
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
...
@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderServiceTest {
@Autowired
OrderService orderService;
@Test
public void 상품주문() throws Exception {
//given
Member member = new Member();
member.setName("회원");
...
}
}
org.junit.runners.model.InvalidTestClassError: Invalid test class 'com.service.OrderServiceTest':
1. No runnable methods
at org.junit.runners.ParentRunner.validate(ParentRunner.java:525)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:92)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:74)
...
오류 원인
테스트 코드를 작성하다가 만날 수 있는 에러이다.
junit4와 junit5에서 제공하는 기능을 혼용하여 사용하면서 발생한 것이 원인이다.
junit4에서는 @RunWith 어노테이션을 지원하고,
junit5에서는 @ExtendWith 어노테이션을 지원한다.
또한, @Test 어노테이션도 다르다.
junit4 환경에서는 @RunWith 어노테이션과 org.junit.Test의 @Test를 사용해야 한다.
import org.junit.runner.RunWith;
import org.junit.Test; // 변경
...
@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderServiceTest {
@Autowired
OrderService orderService;
@Test
public void 상품주문() throws Exception {
//given
Member member = new Member();
member.setName("회원");
...
}
}
junit5에서는 @ExtendWith 어노테이션과 org.junit.jupiter.api의 @Test 어노테이션을 사용해야 한다.
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
...
@ExtendWith(SpringExtension.class) // 변경
@SpringBootTest
public class OrderServiceTest {
@Autowired
OrderService orderService;
@Test
public void 상품주문() throws Exception {
//given
Member member = new Member();
member.setName("회원");
...
}
}
반응형