Swing 어플리케이션에서 Junit 테스트를 할려고 하는데요..
내꺼
안녕하세요..
지금현재 스윙 어플리케이션을 만들고 나서 junit으로 테스트를 하고 있답니다.
그런데 잘 나가다가, 안되네요..ㅠㅠ
뭐가 문제냐면...
원래 어떤 함수에서 인자가 2개가 있습니다. XXX(File file, JFrame jframe)
하나는 File, 다른 하나는 JFrame입니다.
File은 별 상관없는데, 문제는 JFrame입니다.
만들어 놓은 어플리케이션에서야 뭐 당연히 돌아가지만,
Junit테스트를 할 경우 저기에 무엇을 넣어줘야하는지 난감하네요..
혹시 이런 것 해보신 분 없으신지요..ㅠㅠ
답글 기다리고 있겠습니다..
-
남자
아....안되네요..ㅠㅠ
Mocquer로 구성한 소스인데..초반부터 에러네요..ㅠㅠ
MockControl control = MockControl.createStrictControl(JFrame.class);
EasyMock도 비슷하게 해봤는데 똑같은 에러라는..ㅠㅠ
어떻게 해야하나요..;;;;; -
홀림길
여수다님 말씀처럼도 당연히 해봤죠..^^ 그러나 안된다는거..ㅠㅠ그러니깐 junit이 다른 여타 상황이랑은 달라서 질문을 올린거랍니다. 님말씀하신것은 아마도 junit이 아닐경우가 아닐런지...
-
봄
염치 불구하고 말씀드리면 검색하신게 목 오브젝트에 대해서 설명한 전부랍니다.;;;
목 오브젝트 프레임웍들 문법이 상당히 어려워요. 그래서 제가 선택한게 Tlemock이구요.
그리고 그 이전에 직접 목 오브젝트를 만드실수 있습니다. JFrame을 상속한 가짜 객체를 만들면 되는데...
그게 JFrame같이 메서드나 필드가 많은것들일경우에 문제가 되는거죠. -
진주
테스트 메소드에서 XXXX(targetFile, new JFrame()); 으로 그냥 호출하면 되죠.(XXXX메소드 안에서 JFrame 인스턴스의 상태를 바꾸는게 아니라면...) 하지만 제가 볼때는 특정 메소드에서 JFrame 인스턴스를 전달받는게 좀 이상해보입니다. -_-; XXXX 메소드가 JFrame 을 변경하는 게 아니라면 우선 XXXX 메소드부터 손을 보는게 맞을듯 합니다.
-
초월
답변달아주셔서 감사합니다. 근데 Mock Object - 요거는 방금 검색해봤는데..ㅎㄷㄷㄷ
별로 자세히 설명한 자료가 없네요..ㅠㅠ 귀찮으시겠지만 잘 아는 곳이 있다면 링크 좀 걸어주시면 안될런지요...염치불구하고 부탁드려봅니다..(__) -
미나
안녕하세요.
바로 그런 경우에 mock object를 사용합니다.
mock object는 실제 객체를 대신하는 가짜 객체 입니다. 이 녀석을 jframe인자 대신 넣어주고, 그 객체가 잘 동작했는지 확인하는 코드를 넣으시면 됩니다.
유명한 mock으로는 jmock과 easymock이 있습니다.
저 개인적으로는 국내에서 자바 저자로 유명한 수다님께서 만드신 tlemock을 사용하고 있습니다.