我在類中有一個方法,其中內部調用AmazonS3Client.java
,其中AwsCredetialsProvider.getCredentials()
被調用。爲此,我需要在我的測試課程中設置AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。在我的項目中不允許在環境變量中設置這些值。使用mockito設置AWS環境變量的替代方案
我試圖模擬AWSCredentialsProvider
和AWSCredentials
並使用存根來返回憑證。但它拋出以下錯誤:
com.amazonaws.AmazonClientException: Unable to load AWS credentials from any provider in the chain
at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:131)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3648)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3607)
at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:600)
即使我已經嘗試使用MockEnvironment
,ConfigurationProperties
也設置這些值。但沒有發生。
那麼,有沒有什麼可能的方法來模擬這些憑證值?我正在使用MockitoJRunner
。所以,我不能只用一種方法將它改爲Powermockito。
被修改: 我想通過調用listObjects()
從S3獲取文件。這是我面臨的問題,因爲它需要AWS憑據來提取。
所有的方法調用都是在內部調用預定義的類和方法時指定的項目。
請將您的單元測試的代碼。 –