Java 如何测试primefaces UploadedFile组件的JUnit测试用例

Java 如何测试primefaces UploadedFile组件的JUnit测试用例,java,jsf,junit,Java,Jsf,Junit,我想使用JUnit测试用例测试文件上传组件。我没有任何方法可以获得UploadedFile的模拟实现。我正在使用下面的ode从UI读取上传的文件 public void XXXX(final FileUploadEvent event) { final String uniqueFolderName = this.getUniqueFolderName(); final org.primefaces.model.UploadedFile uploadedFil

我想使用JUnit测试用例测试文件上传组件。我没有任何方法可以获得UploadedFile的模拟实现。我正在使用下面的ode从UI读取上传的文件

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完成的:

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) 
    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并设置我需要的特定属性,您可能需要模拟更多属性

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并设置我需要的特定属性,您可能需要模拟更多属性

只是一个提示,需要上传的文件在其构造函数中传递。只是一个提示,需要上传的文件在其构造函数中传递。