본문 바로가기

test5

Mockito Mockito 모의 객체 생성 프레임워크 mock: 모조품 mockito: 모조품을 쉽게 만드는 프레임워크 협력 객체에서 반환 값이 없는 경우, 즉 간접 입력이 없는 경우 협력 객체에서 변수를 잘 받았는지 그리고 잘 처리했는 지를 검증(간접 출력) → mockito Mock 모의 객체 생성 및 모의 객체 동작 지정(Stubbing) 모의 객체가 제공하는 연산을 지닌 인터페이스 선언 @Mock과 @InjectMocks 어노테이션을 사용하여 모의 객체 생성 Mockito의 when().thenReturn()을 사용하여 동작 지정 예시) → pm은 다른 동작은 못하고 1234가 들어왔을 때 1000을 리턴해주는 모의 객체가 되었다. → cart입장에서는 간접입력을 생성한 것 ✔️ doReturn().when(.. 2020. 11. 16.
Junit5 Junit5 가장 최근에 개발된 Junit 테스트 프레임워크, 풍부한 어노테이션을 제공하여 쉽고 간결하게 테스트 코드를 작성 및 실행할 수 있다. Java 8에 기반 (Junit4는 Java 5 기반) 아키텍처 → 테스트를 발견하고 테스트 계획을 생성하는 TestEngine 인터페이스를 정의. → Platform은 TestEngine을 통해서 테스트를 발견하고, 실행하고, 결과를 보고 테스트 코드 → 테스트 메서드는 3A로 구성되어있다. (3A: Arrange, Act, Assert) @DispalyName: 메서드 설명을 넣을 때 사용 (테스트 시에 깔끔하게 볼 수 있음) Error: Assert문 이전에 문제가 발생 Failure: Assert문에서 기댓값과 결괏값이 다른 경우 발생 참고) Asser.. 2020. 11. 16.
SuperTest 연습 사용자 목록 조회 API 테스트 Spec 성공 유저 객체를 담은 배열로 응답 최대 limit 갯수만큼 응답 실패 limit이 숫자형이 아니면 400을 응답 offset이 숫자형이 아니면 400을 응답(DB를 붙인 후 테스트 예정) 코드 //index.spec.js const request = require('supertest'); const should = require('should'); const app = require('./index'); describe('GET /users는', ()=>{ describe('성공시', ()=>{ it('유저 객체를 담은 배열로 응답한다 ',(done)=>{ request(app) .get('/users') .end((err,res)=>{ res.body.shou.. 2020. 6. 11.
테스트 주도 개발(TDD) 라이브러리 3가지 mocha should superTest Mocha 테스트 코드를 실행시켜 주는 테스트 러너 테스트 수트: 테스트 환경 -> 모카에서는 describe()으로 구현 테스트 케이스: 실제 테스트 -> 모카에서는 it()으로 구현 모카 설치: npm -i mocha --save-dev 모카 실행: node.modules\.bin\mocha 실행파일명 예시 코드) //utils.js function capitalize(str){ return str.charAt(0).toUpperCase() + str.slice(1); } module.exports = { capitalize : capitalize }; //utils.spec.js spec이 들어간 파일은 테스트 파일이다. const util.. 2020. 6. 10.
Test 의존성 추가 org.springframework.boot spring-boot-starter-test test 테스트 클래스 설명 @SpringBootTest @RunWith(SpringRunner.class)와 함께 사용 빈 설정 파일을 알아서 찾아서 사용 (SPringBootApplication을 찾아가 모든 빈을 스캔 -> Test용 application Context를 만들면서 모든 빈들을 등록 webEnvironment MOCK: - 서블릿 컨테이너를 띄우지 않음(내장 톰캣 구동 X) - 서블릿을 MockUp 하여 사용 - MockMvc 사용(@AutoConfigureMockMvc 추가) -> MockUp 된 서블릿과 interaction RANDOM_PORT, DEFINED_PORT - 실제로.. 2020. 6. 3.