2013-08-06 3 views
0

Я хочу протестировать компонент загрузки файла с помощью тестового примера JUnit. Есть ли какой-либо способ получить макетную реализацию для UploadedFile.i, используя приведенную ниже команду для чтения загруженного файла из пользовательского интерфейса.Как протестировать тестовый пример JUnit для факторинга Загруженный компонент компонента

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); 
    } 

Не могли бы вы помочь мне в создании макетной реализации для этого компонента.

ответ

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' class] (http://www.primefaces.org/docs/api/3.4/org/primefaces/event/FileUploadEvent.html) требует, чтобы загруженный файл передавался в его конструкторе , –

3

Это, как это делается с Mockito:

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 и устанавливаю нужные мне атрибуты, вам может понадобиться высмеять больше атрибутов.

Смежные вопросы