본문 바로가기

공부27

함수형 인터페이스 활용 함수형 인터페이스 오직 하나의 메서드만 가지고 있는 인터페이스 상속받은 메서드까지 포함했을 때 하나의 메서드만 가지고 있어야지만 함수형 인터페이스 예시) public interface Predicated { bollean test(T t); } public interface Comparator { int compare(T o1, T o2); } public interface Runnable { void run(); } 함수형 인터페이스 활용 → 람다 표현식을 사용하면 함수형 인터페이스의 추상 메서드 구현을 직접 전달할 수 있다. → 전체 표현식을 함수형 인터페이스의 인스턴스로 취급 예시) Runnable r1 = () -> System.out.println("hello 1"); Runnable r2 = .. 2020. 11. 16.
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.
함수형 인터페이스 모음 Function : 매개값을 리턴값으로 매핑(타입 변환)하는 역할 Consumer : 매개값을 소비하는 역할만 하며, 소비한다는 말은 사용만하고 리턴값이 없다는 뜻 Supplier : 호출한 곳으로 데이터를 리턴(공급)하는 역할, 리턴값은 있고 매개변수는 없음 Operator : Function과 동일하게 매개 변수와 리턴값이 있는 applyXXX() 메소드를 가지고 있다. 하지만 이 메소드들은 매개값을 리턴값으로 매핑(타입 변환)하는 역할보다 매개값을 이용해서 연산을 수행한 후 동일한 타입으로 리턴값을 제공하는 역할 Predicate : true 또는 false를 리턴하는 역할 Runnable : run()실행할 수 있는 인터페이스 Function 함수적 인터페이스 목록 인터페이스 명 추상 메서드 설명.. 2020. 10. 8.
ORM(Sequelize) & 데이터베이스 ORM이란? 데이터베이스를 객체로 추상화한 것 쿼리를 직접 작성하지 않고 ORM의 메서드로 데이터를 관리할 수 있음 노드에서의 SQL ORM은 시퀄라이져(Sequelize) 메서드 예시) - insert users ('name') values ('alice'); → User.create({name:'alice'); - select * from users; → User.findAll(); - update users set name = 'bek' where id = 1; → User.update({name:'bek'}, {where: {id:1}}); - delete from users where id = 1; → destroy({where: {id: 1}}); 모델 데이터베이스 테이블을 ORM으로 추상화한.. 2020. 6. 15.
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.