2013-08-06 2 views
0

JUnit 테스트 케이스를 사용하여 파일 업로드 구성 요소를 테스트하고 싶습니다. 업로드 된 파일을 읽으려면 아래 ode를 사용하여 UploadedFile.i 모의 구현을 얻으십시오. UI에서.Primeface 용 JUnit 테스트 케이스를 테스트하는 방법 UploadedFile 구성 요소

public void XXXX(final FileUploadEvent event) { 

     final String uniqueFolderName = this.getUniqueFolderName(); 

     final org.primefaces.model.UploadedFile uploadedFile = event.getFile(); 

     final UploadedFileWrapper uploadedFileWrapper = new UploadedFileWrapper(uploadedFile, 
       UploadedFile.Status.FILE_SAVED, uniqueFolderName); 

     if (!new Boolean(this.multiple)) { 
      LOGGER.debug("only single upload is allowed", this.getMultiple()); 
      this.clearUploadedFiles(); 
     } 

     this.uploadedFiles.add(uploadedFileWrapper); 
    } 

이 구성 요소의 모의 구현을 만드는 방법을 알려주십시오. 이것은이 Mockito로 끝났다 어떻게

답변

1
Did you try.. 

// Creating a Mock for UploadedFile 
UploadedFile mockFileUploadedFile = EasyMock.createMock(UploadedFile.class); 

// Injecting the Mock to FileUploadEvent 
FileUploadEvent fileUploadEvent = new instance... 
fileUploadEvent.setFileUploadedFile(mockFileUploadedFile) 
+0

단지 '[FileUploadEvent' 클래스] (http://www.primefaces.org/docs/api/3.4/org/primefaces/event/FileUploadEvent.html)는 업로드 된 파일을 해당 생성자에서 전달해야합니다. . –

3

:

File file = new File("src/test/TestUploadFile.txt"); 
    InputStream inputStream = new FileInputStream(file); 
    FileUploadEvent event = Mockito.mock(FileUploadEvent.class); 
    UploadedFile uploadedFile = Mockito.mock(UploadedFile.class); 
    Mockito.when(uploadedFile.getFileName()).thenReturn(file.getName()); 
    Mockito.when(uploadedFile.getContentType()).thenReturn("application/octet-stream"); 
    Mockito.when(uploadedFile.getInputstream()).thenReturn(inputStream); 
    Mockito.when(event.getFile()).thenReturn(uploadedFile); 

나는 테스트 파일을 끌어와 InputStream를 만들 수 있습니다. 그런 다음 FileUploadEvent 및 UploadedFile을 모의하고 필요한 특정 속성을 설정하면 더 많은 특성을 조롱해야 할 수도 있습니다.

관련 문제