문제

내 응용 프로그램은 DB에 연결하고 여기에서 카테고리를 가져옵니다. 디버그 체제에서 나는이 큰 트리 객체를 볼 수 있으며 테스트 스터브에 사용하기 위해 디스크 어딘가에이 객체를 저장하는 능력을 생각했습니다. 이와 같이:

mockedDao = mock(MyDao.class);
when(mockedDao.getCategoryTree()).thenReturn(mySavedObject);

가정합니다 mySavedObject - 충분히 거대하므로 수동으로 생성하거나 특수 생성 코드를 작성하고 싶지 않습니다. 디버그 세션 중에 직렬화하고 어딘가에 저장할 수 있기를 원합니다. thenReturn 테스트에서. 그렇게하는 표준 방법이 있습니까? 그렇지 않다면 그러한 접근 방식을 어떻게 구현하는 것이 더 낫습니까?

도움이 되었습니까?

해결책

하다 당신의 아이디어를 사랑하십시오, 그것은 굉장합니다!

나는 그 기능을 상자 밖에서 제공 할 라이브러리를 모릅니다. 사용해 볼 수 있습니다 ObjectOutoutStream 그리고 ObjectInputStream (즉, 표준 Java 직렬화) 객체가 모두 구현되는 경우 Seriablizable. 일반적으로 그들은 그렇지 않습니다. 이 경우 더 많은 운이있을 수 있습니다. xstream 또는 친구 중 하나.

다른 팁

우리는 일반적으로 전체 DB를 조롱하는 DB에서 카테고리를로드하기 위해 코드를 재사용 (및 암시 적으로 테스트)합니다.

구체적으로, 당사의 단위 테스트는 메모리 내 데이터베이스에 대해 실행됩니다 (HSQLDB), 테스트 데이터를 가져 와서 각 테스트 전에 실행하기 전에 초기화합니다.

보세요 동적 관리 콩 - 이는 실행중인 Java 응용 프로그램의 값을 변경하는 방법을 제공합니다. 어쩌면 나무를 잡고 나무를 읽고 어딘가에 보관하고 나중에 다시 주입하는 mbean을 정의하는 방법이있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top