junit
junit
4.12
test
org.mockito
mockito-core
2.23.4
test
public ObjectMetadata getObject(String bucketName, String key) {
AmazonS3 s3client = new AmazonS3Client();
S3Object object = s3client.getObject(bucketName, key);
return object.getObjectMetadata();
}
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class AmazonS3Test {
@Mock
private AmazonS3Client s3Client;
@Mock
private S3Object s3Object;
@InjectMocks
private AmazonS3 amazonS3;
@Test
public void testGetObject() {
ObjectMetadata expectedMetadata = new ObjectMetadata();
when(s3Client.getObject("testBucket", "testKey")).thenReturn(s3Object);
when(s3Object.getObjectMetadata()).thenReturn(expectedMetadata);
ObjectMetadata actualMetadata = amazonS3.getObject("testBucket", "testKey");
assertEquals(expectedMetadata, actualMetadata);
}
}
以上代码使用了MockitoRunner,为@Autowired,@Inject修饰的属性创建mock对象。然后使用when()方法模拟方法调用并返回期望值。在测试代码的最后,断言期望值和实际值相同。 4. 运行测试用例,确保所有单元测试通过。