...

Junit의 @BeforeEach 이 실행 안 됨 오류 본문

이것저것/오류 해결

Junit의 @BeforeEach 이 실행 안 됨 오류

gi2 2022. 2. 25. 15:33
package hello.core.order;

import hello.core.AppConfig;
import hello.core.member.Grade;
import hello.core.member.Member;
import hello.core.member.MemberService;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;

public class OrderServiceTest {

    MemberService memberService;
    OrderService orderService;

    @BeforeEach
    public void beforeEach(){
        AppConfig appConfig = new AppConfig();
        memberService = appConfig.memberService();
        orderService = appConfig.orderService();
    }

    @Test
    public void createOrder(){
        long memberId=1L;
        Member member = new Member(memberId,"memberA", Grade.VIP);
        memberService.join(member);

        Order order = orderService.createOrder(memberId,"itemA",10000);
        Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000);
    }
}

위와 같은 코드에서, @BeforeEach부분의 memberService와 orderService의 초기화가 진행되지 않아 NPE(Null Pointer Exception)이 발생하였다. 

 

package hello.core.order;

import hello.core.AppConfig;
import hello.core.member.Grade;
import hello.core.member.Member;
import hello.core.member.MemberService;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeEach;

Test 어노테이션을 불러오는 import 부분을 

import org.junit.Test 에서

import org.junit.jupiter.api.Test

로 변경해주었더니 문제가 해결 되었다. 

 

Comments