Test(6)
-
BDD
1. BDD란 BDD(Behavior Driven Development)로 TDD를 근간으로 파생된 개발 방법입니다. TDD에서 한 발 더 나아가 테스트 케이스 자체가 요구 사항이 되도록 하는 개발 방법입니다. BDD를 통해 개발을 하게 된다면 테스트 메소드의 이름을 “이 클래스가 어떤 행위를 해야한다.”라는 식의 문장으로 작성하여 행위에 대한 테스트에 집중할 수 있습니다. 2. BDD의 기본 패턴 BDD는 시나리오를 기반으로 테스트 케이스를 작성하며 함수 단위 테스트를 권장하지 않습니다. 이 시나리오는 개발자가 아닌 사람이 봐도 이해할 수 있을 정도의 레벨을 권장합니다. 하나의 시나리오는 Given, When, Then 구조를 가지는 것으로 기본 패턴을 권장합니다. Feature: 테스트에 대상의 기능..
2020.04.02 -
Given-When-Then 패턴
1. Given-When-Then 패턴이란 Given-When-Then 패턴은 Test Code 스타일을 표현하는 방식을 말합니다. Given 테스트에서 구체화하고자 하는 행동을 시작하기 전에 테스트 상태를 설명하는 부분 When 구체화하고자 하는 그 행동 Then 어떤 특정한 행동 때문에 발생할거라고 예상되는 변화에 대한 설명 예시 기능 : 사용자 주식 트레이드 시나리오 : 트레이드가 마감되기 전에 사용자가 판매를 요청 "Given" 나는 MSFT 주식을 100가지고 있다. 그리고 나는 APPL 주식을 150가지고 있다. 그리고 시간은 트레이드가 종료되기 전이다. "When" 나는 MSFT 주식 20을 팔도록 요청했다. "Then" 나는 MSFT 주식 80 가지고 있어야 한다. 그리고 나는 APPL 주..
2020.04.01 -
TDD
TDD란 TDD의 개념 TDD(Test Driven Development)란 테스트를 먼저 만들고 테스트를 통과하기 위한 코드를 만드는 방법을 의미합니다. 일반적으로는 SW개발을 할 때 코딩을 전부 끝낸 후에 테스트를 진행합니다. 이 순서를 역전시킨 것이 TDD를 적용하는 것입니다. SW를 만드는 과정에서 우선 테스트를 작성합니다. 그리고 테스트를 통과하는 코드를 만드는 것을 반복하면서 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것입니다. TDD가 필요한 이유 특정 모듈의 개발 기간이 길어질수록 목표 의식이 흐려집니다. 작업 분량이 늘어날수록 확인이 어려워집니다. 논리적인 오류를 찾기 어렵습니다. 코드의 사용 방법이나 변경 이력을 개발자의 기억력에 의존하게 되는 경우가 대부분입니다. 코드 수정 시..
2020.04.01 -
Junit5
JUnit5란 Junit5는 이전의 Junit과 달리 3개의 다른 서브 프로젝트로부터 각기 다른 모듈로 이루어져 있습니다. Junit5 = Junit Platform + Junit Jupiter + Junit VintageJUnit 5의 모듈 Junit Platform JVM 환경에서 테스트 프레임워크 기동을 위한 기초입니다. 또한 테스트 프레임워크 개발을 위한 Test Engine API를 제공합니다. 다음과 같은 기능을 추가로 제공합니다. Command line으로 플랫폼을 기동할 수 있는 console launcher 빌드 플러그인(gradle, maven) Junit4를 실행할 수 있는 테스트 엔진 Junit Jupiter 새로운 개발 모델과 테스트 케이스 작성을 위한 확장 모델을 포함합니다. 테..
2020.04.01 -
Mockito
Mockito란 Mockito의 개념 Mockito란 단위 테스트를 위한 Java Mocking Framework입니다. 여기서 Mock이란 단위 테스트를 위한 가짜 객체를 말하는 것입니다. 즉, Mockito는 단위 테스트를 위해 Mock이라는 가짜 객체를 만들어주는 프레임워크입니다. Mockito는 Mock 객체 생성, 객체 동작을 지정 그리고 테스트 대상 로직이 제대로 수행 되었는지 확인이 가능합니다. Mockito의 다양한 기능 Mock(), @Mock Mock 객체를 만들어서 반환하는 기능입니다. import static org.mockito.Mockito.*; // mock 처리를 합니다. // Annotation, mock() Method 같은 표현입니다. @Mock List annotati..
2020.04.01 -
JUnit
JUnit이란 JUnit의 개념 JUnit이란 Java의 대표적인 Unit Test 도구입니다. Testing 결과를 단순히 문서로 남기는 것이 아니라 Test Class를 그대로 남김으로써 나중에 개발자에게 테스트 방법 및 클래스의 History를 그대로 넘겨줄 수 있습니다. JUnit의 특징 Unit Test Framework 중 하나 단정문으로 테스트 케이스의 수행 결과를 판별 Annotation으로 간결하게 사용 가능 @Test 메서드가 호출할 때마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어짐 Junit의 대표적인 판별 메소드들 Method내용assertArrayEquals(a,b)배열 a와 b가 일치함을 확인assertEquals(a, b)객체 a와 b의 값이 같음을 확인assertS..
2020.03.30