본문 바로가기

WEB/Java12

[Junit] MockMvc에서 session 사용하기 개발 완료 후 테스트 상황에서 MockMvc를 사용하기로 했다. 해당 부분은 추후 정리예정이다. 여하간 controller를 테스트 하기 위해서 사용했는데, 해당 controller에서는 사용자가 로그인을 했는지 안했는지 판단하기 위해 session을 확인하기 때문에 테스트 중 오류가 발생했다. 따라서 MockMvc에서 session을 사용하는 방법을 알아보았다. 사용법은 간단하다. MockHttpSession 클래스를 사용하면 끝! MockHttpSession session = new MockHttpSession(); HttpServletRequest와 동일하게 getSession(0 / setSession() 사용이 가능하다. 따라서 session에 담긴 데이터를 사용하는 controller를 테스트.. 2023. 4. 18.
StringEscapeUtils StringEscapeUtils HTML 문자 escape 할때 사용 sql을 사용해서 필터와 같은 기능을 구현하는 와중에 웹 브라우저에서 서버로 보내는 파라미터 중 특수문자가 인코딩(Encoding)되어 기능 구현에 문제가 생겼다. 예를들면, 나&너라는 값을 가지고 있는 데이터를 조회하려는데 서버에서 받은 파라미터 값을 보니 나&apm;너 와 같이 인코딩 되있었다. 해서 StringEscapeUtils 클래스를 사용해 디코딩을 하여 해결! escape(encode) 사람이 인지하는 문자를 규칙에 따라 컴퓨터가 이해할 수 있는 언어(0,1)로 이루어진 코드로 변환하는것 을 통틀어 지칭함. 즉 정해진 규칙에 따라 코드화, 암호화, 부호화 함 unescape(decode) : escape/encode 된 문.. 2023. 2. 23.
Scanner, BufferedReader Scanner▷사용이 편리하다.▷java.util 패키지▷띄어쓰기나 개행문자(Enter, \n)가 들어오면 다른 글자로 인식한다. 생성 Scanner in = new Scanner(System.in); 주요 메소드in.next()▷하나의 단어를 입력받는다.▷첫 단어의 앞쪽 공백과 개행문자는 무시하고 하나의 단어를 입력받고, 단어 뒤 개행문자는 버려지지 않는다.in.nextLine()▷한 줄을 입력받는다.▷개행문자까지 입력받으며, 개행문자는 버려진다.in.close▷현재 스캐너를 종료합니다.in.hashNext()▷입력 값의 마지막까지 다른 Token이 있으면 true 리턴.in.hashNextLine()▷한 줄 내용이 존재하면 1을 리턴, 없으면 0을 리턴한다. BufferedReader▷java.io .. 2017. 1. 31.
Spring Framework : DI DI (Dependency Injection)▷프로그래밍에서 구성 요소간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일을 통해 정의되게 하는 디자인 패턴▷Spring에서는 이러한 의존성 관계가 있을 때 프레임워크가 작업을 처리해줌. 위와 같을 때 (Class A가 ServiceA와 ServiceB에 종속) ClassA에 대한 독립적 테스트가 어렵고, 종속성의 변경이 있을 때 ClassA의 소스 코드를 변경해야 한다. 또한 ClassA에는 종속 관계를 정의, 지정 및 관리하기 위한 반복적인 코드가 들어가게 되는 문제점 들이 생긴다. 이러한 문제를 해결하기 위해서 Class 내에서 종속성을 인스턴스화 하지 않고, 종속성의 유효한 인스턴스를 얻게 위해 객체의 생성 및 초기화를 빌더 객체를 통해서 한다. .. 2017. 1. 3.
반응형