성장하는 인삼의 지식 블로그

[Book - JUnit IN ACTION 3판] 10. Maven 3로 실행하는 JUnit 테스트

Maven의 장점은 사고의 프레임을 만들어 둔 뒤 개발자가 그 프레임 안에서 사고할 수 있도록 유도하는 것이다. Maven을 사용하는 개발자는 Maven식으로 생각하고, 작업을 수행할 수밖에 없게 된다. 대부분의 상황에서 Maven은 말도 안되는 실행을 허용하지 않는다. 이는 개발자에게 프로젝트가 어떻게 실행되어야 하는지 분명하게 안내하는 효과가...

[Book - JUnit IN ACTION 3판] 8. 모의 객체로 테스트하기

개별 메서드를 단위 테스트할 때 환경이나 다른 메서드와 격리하는 것은 확실히 좋은 목표다. 스텁을 활용하면 소스 코드를 웹 서버, 파일 시스템, 데이터베이스 등의 환경에서 격리하여 단위 테스트를 할 수 있다. 그렇다면 메서드 호출을 다른 클래스로부터 격리하는 것과 같이 조금 더 세밀한 격리를 해야 할 때는? 모의 객체를 사용하면 된다. 모의 객...

[Book - JUnit IN ACTION 3판] 7. 스텁을 활용한 거친 테스트

아래 그림과 같이 다른 클래스에 의존하는 애플리케이션이 있고, 다른 클래스 역시 또 다른 클래스나 외부 환경에 의존한다. JUnit 5를 사용해서 HTTP 서버, 데이터베이스, 물리 장비 등의 외부 리소스에 의존하는 애플리케이션을 테스트하는 방법을 알아보자. 특정한 런타임 환경에 의존하는 애플리케이션을 위한 단위 테스트를 작성하기는 매우 어렵다...

[Book - JUnit IN ACTION 3판] 6. 테스트 품질

테스트 커버리지 도구를 이용해서 테스트가 커버한 코드와 커버하지 못한 코드가 얼마나 되는지를 확인하고, 해당 테스트가 얼마나 유용한지를 계산해 보자. 그리고 TDD가 무엇인지 간단하게 알아보고 어떻게 하면 테스트하기 쉬운 코드를 작성할 수 있는지를 알아보자. 테스트 커버리지 측정하기 단위 테스트를 작성하면 애플리케이션을 변경하고 리팩터링할 때 확신...

[Book - JUnit IN ACTION 3판] 5. 소프트웨어 테스트 원칙

다양한 유형의 소프트웨어와 그러한 테스트가 애플리케이션의 생애 주기에서 수행하는 역할을 살펴보자. 이 모든 내용을 왜 다 알아야 할까? 단위 테스트는 계획과 준비 없이 되는 것이 아니기 때문이다. 최고 수준의 개발자가 되기 위해서는 단위 테스트를 기능 테스트를 비롯한 다른 테스트와 구분할 수 있어야 한다. 그렇게 단위 테스트가 왜 필요한지를 이...

[Book - JUnit IN ACTION 3판] 3. JUnit 아키텍처

소프트웨어 아키텍처의 개념과 중요성 소프트웨어 아키텍처란 소프트웨어 시스템의 기본 구조를 말한다. 소프트웨어 시스템은 체계적인 방식으로 만들어야 한다. 소프트웨어 시스템 구조는 소프트웨어 요소, 소프트웨어 요소 간의 관게, 요소와 관계를 이루는 속성들로 구성된다. 소프트웨어 아키텍처는 건축에서의 아키텍처와 비슷하다. 소프트웨어 아키텍처의 기초를...

[Book - JUnit IN ACTION 3판] 2. JUnit 핵심 살펴보기

프로그램이 점점 커지면서 새로운 클래스와 메서드가 계속 추가된다면 새로운 테스트 코드도 그에 맞춰 추가되어야 한다. 크래스들은 때로 누구도 생각하지 못한 방식으로 상호작용할 수 있기 때문에 어떤 코드가 변경됐는지와 상관없이 언제든 모든 테스트를 실행할 수 있어야 한다. 그런데 어떻게 여러 테스트를 실행할 수 있을까? 어떤 테스트를 통과했고 실패했는...

© Yn3. Some rights reserved.