반응형

Spring에서 테스트 클래스 사용을 위한 두 가지 어노테이션들에 대해 알아봅시다.

 

우선, Mokito를 사용하기 위해서는 아래와 같은 코드 작성을 해줘야 합니다. 테스트클래스 위에 @RunWith 어노테이션을 작성하여 Mock 객체를 사용하거나, @RunWith 어노테이션을 작성하지 않을 경우 setUp() 메소드를 아래처럼 만들어줍니다. 

 

@RunWith(MokitoJunitRunner.class)
public class TestClass {

}

public class TestClass {

    @BeforeEach
    public void setUp() {
        MokitoAnnotations.initMocks(this);
    }
}

 

@Mock

 

실제 인스턴스가 없는 가상의 Mock 인스턴스를 만들어 반환합니다.

 

@MockBean

 

ApplicationContext에 Mock 객체를 추가합니다.

 

@InjectMock

 

@Mock이나 @Spy 객체를 자신의 멤버 클래스와 일치하면 주입합니다.

 

@SpyBean

 

ApplicationContext에 Spy 객체를 추가합니다.

 

 

@Mock, @MockBean의 차이

 

@MockBean은 @Mock과 달리 spring-boot-test에서 제공하는 어노테이션으로, Spring이 관리하는 Bean들 중에서 하나 이상을 Mock 객체로 사용하고 싶을 때 사용합니다.

반응형
반응형

Dependency Injection

 

의존성 주입이란 말 그대로 A가 B에 의존할 때 A에 B를 주입한다는 것을 의미합니다. 즉, A가 B에 의존한다는 말은 A가 B를 사용한다는 의미와 같습니다.

 

이러한 의존 관계에서 A가 B에 의존하고 있을 때, B에 변화가 생기면 A가 영향을 받게 되고 B를 효과적으로 관리하기 위한 코드 생성이 필요합니다.

 

Spring 주입에 관한 글

 

[Spring] 생성자(Constructor) 주입, 필드(Field) 주입, 수정자(Setter) 주입

생성자 주입(Constructor Injection) 스프링에서 가장 권장하는 방식입니다. 단일 생성자인 경우에는 @Autowired 어노테이션을 붙이지 않아도 되지만 생성자가 2개 이상인 경우에는 생성자에 어노테이션

developer-rooney.tistory.com

 

반응형
반응형

REST(REpresentational State Transfer) API

 

리소스를 처리하는 방식, 즉, CRUD를 처리하는 방식을 말한다.

반응형

'ETC > IT' 카테고리의 다른 글

Multi-tier Architecture, Test Driven Development  (0) 2021.08.10
로딩을 하는 이유는?  (0) 2021.04.19
컴퓨터의 데이터 단위(Bit, Byte, KB, MB, GB, TB)  (0) 2021.04.19
반응형

멀티-티어 아키텍처

 

여러 개의 계층으로 나누어서 시스템을 구성하는 방법으로 가장 흔하게 사용하는 것은 3티어 아키텍처이다.

 

 

3티어 아키텍처

 

Presentation - Business - Data Source 세 부분으로 구성된다.

 

 

Presentation : 사용자와 소통하는 부분  (Front-End)

 

Business : 사용자가 요청한 것을 처리하는 부분 (Back-End)

 

Data Source : 처리한 결과가 보존되는 곳 (DataBase)

 

 

이 중에서 Business 부분에는 Layered Architecture 라는 것이 존재한다.

 

Layered Architecture : 4개의 레이어로 시스템을 만드는 것으로 UI, Application, Domain, Infrastructure로 나뉜다.* 각 레이어는 아래 단계의 레이어에 의존되어 사용되지만 윗 단계의 레이어를 사용하지 않는다. 이렇게 사용하는 이유는 프로젝트의 복잡도를 낮출 수 있다.

 

 

TDD(Test Driven Development)

 

테스트 주도 개발 혹은 목표 주도 개발을 의미한다. 테스트는 개발에서의 목표를 실험해보게 되고 사용자 입장에서 실행하게 되므로 사용자 주도 개발이라고도 한다.

 

TDD를 사용하는 이유는 목표를 달성하기 위함이고 좀 더 보기 좋은 코드를 만드는 데에 목표가 있다.

 

1) 올바르게 작동하는 코드 구현

 

2) 깔끔하게 작동하도록 리팩토링 -> 작동은 그대로 두고 코드만 변경

반응형

'ETC > IT' 카테고리의 다른 글

REST API  (0) 2021.08.10
로딩을 하는 이유는?  (0) 2021.04.19
컴퓨터의 데이터 단위(Bit, Byte, KB, MB, GB, TB)  (0) 2021.04.19

+ Recent posts