Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何用所需的值模拟S3客户机_Java_Amazon S3_Junit_Mockito_Powermockito - Fatal编程技术网

Java 如何用所需的值模拟S3客户机

Java 如何用所需的值模拟S3客户机,java,amazon-s3,junit,mockito,powermockito,Java,Amazon S3,Junit,Mockito,Powermockito,如何模拟总是给出一些预定义值的S3客户机。blow代码总是返回空数据 我的测试方法 @Test Void TestMyMethod() { List<String> myList = Arrays.asList("xyz", "pqr"); InputStream testInputStream = new StringInputStream("abcd");

如何模拟总是给出一些预定义值的S3客户机。blow代码总是返回空数据

我的测试方法

  @Test
    Void TestMyMethod() {
    List<String> myList = Arrays.asList("xyz", "pqr");
            InputStream testInputStream = new StringInputStream("abcd");
            S3ObjectInputStream s3ObjectInputStream = mock(S3ObjectInputStream.class);
            S3Object s3Object = mock(S3Object.class);
            when(s3Client.getObject(anyString(), anyString())).thenReturn(s3Object);
            when(s3ObjectInputStream.read(any(byte[].class))).thenAnswer(invocation -> {
                return testInputStream.read(invocation.getArgument(100));
            });
            when(s3Object.getObjectContent()).thenReturn(s3ObjectInputStream);
            when(asyncWorkerUtil.readMyListFromS3()).thenReturn(myList);  // I am getting null here
    }
@测试
Void TestMyMethod(){
List myList=Arrays.asList(“xyz”、“pqr”);
InputStream testInputStream=新StringInputStream(“abcd”);
S3ObjectInputStream S3ObjectInputStream=mock(S3ObjectInputStream.class);
S3Object S3Object=mock(S3Object.class);
当(s3Client.getObject(anyString(),anyString())。然后返回(s3Object);
当(s3ObjectInputStream.read(any(byte[].class))。然后回答(调用->{
返回testInputStream.read(invocation.getArgument(100));
});
当(s3Object.getObjectContent())。然后返回(s3ObjectInputStream);
当(asyncWorkerUtil.readMyListFromS3()).thenReturn(myList);//我在这里得到null
}
我期望(“xyz”、“pqr”)作为retrun值而不是空列表

实际方法

public List<String> readMyListFromS3() throws IOException {

    S3Object s3object = s3Client.getObject(Bucket, FilePath);
    List<String> stuList = new ArrayList<>();

    Reader reader = new BufferedReader(new InputStreamReader(s3object.getObjectContent()));
    CSVReader csvReader = new CSVReader(reader);
    List<String[]> list = csvReader.readAll()
    list.stream().filter(item -> !item[0].trim().isEmpty()).forEach(item -> 
    stuList.add(item[0]));
    retrun list;
}


    
public List readMyListFromS3()引发IOException{
S3Object S3Object=s3Client.getObject(Bucket,FilePath);
List stuList=new ArrayList();
Reader Reader=new BufferedReader(新的InputStreamReader(s3object.getObjectContent());
CSVReader CSVReader=新的CSVReader(读卡器);
List List=csvReader.readAll()
list.stream().filter(项->!项[0].trim().isEmpty()).forEach(项->
添加(项目[0]);
重新运行列表;
}