티스토리 뷰

반응형

게시판에 글을 등록 또는 수정할 때 글을 insert/update 한 후 redirect 시키는데 

redirect 시키는 url이 (생성 또는 수정된) 게시글 코드를 파라미터로 포함하고 있었다.


그런데 JUNIT 테스트 코드를 작성하려니 update는 게시글 코드를 내가 미리 알 수 있지만 

insert하는 경우는 insert한 후 받아오는 값이라서 테스트 할 때마다 변하고 내가 알 수 있는 방법이 없었다.


이러한 경우에 대한 해결 방법을 서칭한 결과 redirectedUrl을 사용하지 않고 정규식 표현을 이용하여 패턴에 맞는지 확인하는 방법을 사용하는 방법을 발견했다.



참고 사이트

https://stackoverflow.com/questions/17834034/spring-mockmvc-redirectedurl-with-pattern



여기서  나오는 redirectedUrlPattern 메소드를 MockMvc.class에 추가할 수 없으니 테스트와 관련된 적절한 곳에 만들어주었다. 



public static ResultMatcher redirectedUrlPattern(final String expectedUrlPattern){

    return new ResultMatcher() {

    public void match(MvcResult result){

    Pattern pattern = Pattern.compile(expectedUrlPattern);

    Matcher matcher = pattern.matcher(result.getResponse().getRedirectedUrl());

    assertTrue(matcher.find());

    }

    };

    }



expectedUrlPattern에 정규식 표현을 넣어서 호출해 주면 된다. 

특수문자는 앞에 \\를 붙여주어야 한다. ex) \\? \\&


정규식 표현이 맞지 않아 에러가 나는 경우가 많았다 ㅠㅠ 

테스트하면서 맞는 표현을 찾는 데에 아래 사이트가 도움이 되었다.



정규식 테스트 사이트 : 

https://programmers.co.kr/learn/courses/11/lessons/538


패턴매칭  참고 사이트 : 

http://dreamzelkova.tistory.com/entry/JAVA-%ED%8C%A8%ED%84%B4-%EB%A7%A4%EC%B9%ADPattern-Matching


  

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함