>source

JSF 앱에서 테스트 중심 개발을 수행하려고 할 때 클래스를 더 테스트 가능하고 분리하는 방법을 이해하는 데 어려움을 겪고 있습니다. 예 :

@Test
public void testViewDocumentReturnsServletPath(){
    DocumentDO doc = new DocumentDO();
    doc.setID(7L);
    doc.setType(“PDF”);
    DocumentHandler dh = new DocumentHandler(doc);
    String servletPath = dh.viewDocument();
    assertTrue(servletPath, contains(“../../pdf?path=“);
}

이것은 DB와 같은 외부 리소스와 상호 작용하기 위해 viewDocument () 내에서 지원되는 개인 메소드 중 일부를 제거하면 테스트 할 수 있습니다 (현재의 지식으로).

이러한 지원되는 개인 메소드를 사용하여 공개 API를 어떻게 단위 테스트 할 수 있습니까?

  • 답변 # 1

    단위 테스트에는 일반적으로 제어 된 출력을 얻기 위해 함수가 의존하는 외부 종속성의 조롱이 포함됩니다. 즉, 개인 메서드가 API를 호출하면 Mockito와 같은 프레임 워크를 사용하여 특정 반환 값을 강제로 적용하여 코드가 원하는 방식으로 값을 처리하도록 할 수 있습니다. 예를 들어 Mockito에서는 다음과 같습니다.

    when(someApiCall).thenReturn(someResource);
    
    

    테스트하는 메소드가 제어하지 않는 데이터베이스 또는 다른 외부 리소스와 상호 작용하려는 경우에도 동일한 구조가 유지됩니다.

관련 자료

  • 이전 vuejs2 : Vuejs 경고 예상 부울 발견 문자열
  • 다음 Windows Update 서비스가 서버를 실행할 때 서버를 손상시킬 수 있습니까?