最近很多小伙伴都在问如何使用MockRestServiceServer模拟RestTemplate?和模拟mock这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展android–M
最近很多小伙伴都在问如何使用MockRestServiceServer模拟RestTemplate?和模拟 mock这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展android – MockContentResolver在ServiceTestCase中的空指针、backuprestoreremoteservice是什么、com.amazonaws.services.ec2.model.DescribeReservedInstancesRequest的实例源码、com.amazonaws.services.identitymanagement.model.ListServerCertificatesResult的实例源码等相关知识,下面开始了哦!
本文目录一览:- 如何使用MockRestServiceServer模拟RestTemplate?(模拟 mock)
- android – MockContentResolver在ServiceTestCase中的空指针
- backuprestoreremoteservice是什么
- com.amazonaws.services.ec2.model.DescribeReservedInstancesRequest的实例源码
- com.amazonaws.services.identitymanagement.model.ListServerCertificatesResult的实例源码
如何使用MockRestServiceServer模拟RestTemplate?(模拟 mock)
@RunWith(MockitoJUnitRunner.class)public class FeatureFlipperManagerTest { @Autowired RestTemplate restTemplate = new RestTemplate(); @Autowired Service service = new Service(); MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate); @Test public void test() throws Exception { mockServer.expect(requestTo(Mockito.anyString())) .andRespond(withSuccess("{\"enabled\":true}", MediaType.APPLICATION_JSON)); boolean res = service.isEnabled("xxx"); mockServer.verify(); Assert.assertEquals(true, res); }}
我有MockRestServiceServer来模拟服务中的restTemplete。但是它总是失败。它显示错误为java.lang.AssertionError:Further request(s) expected 0 out of 1 were executed
。任何人都可以让我知道我在哪里做错了。
服务本身将如下所示:
public class Service{ public boolean isEnabled(String xxx) { RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> response = restTemplate.getForEntity("someurl",String.class); if(...)return true; return false; }}
答案1
小编典典首先,您的Service
类会在每个请求上创建一个RestTemplate的新实例。我不能足够强调这种不良做法。创建一个类型为RestTemplate的bean并将其注入到您的Service
bean中(它很可能已经创建-
取决于您使用的Spring MVC版本)。
一旦有了它,那么两个RestTemplates:一个在您的Service
bean中,另一个在其中注入,FeatureFlipperManagerTest
将是相同的,并且MockRestServiceServer
可以进行测试。
编辑-更明确地说:
将您的Service
班级修改为:
@Componentpublic class Service { private RestTemplate restTemplate; @Autowired public Service(RestTemplate restTemplate) { this.restTemplate = restTemplate; } public boolean isEnabled(String xxx) { ResponseEntity<String> response = restTemplate.getForEntity("someurl",String.class); if(...)return true; return false; }}
和您的测试课程:
@RunWith(MockitoJUnitRunner.class)public class FeatureFlipperManagerTest { @Autowired RestTemplate restTemplate; @Autowired Service service; MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate); @Test public void test() throws Exception { mockServer.expect(requestTo(Mockito.anyString())) .andRespond(withSuccess("{\"enabled\":true}", MediaType.APPLICATION_JSON)); boolean res = service.isEnabled("xxx"); mockServer.verify(); Assert.assertEquals(true, res); }}
如果此操作失败,并说没有RestTemplate
bean,请粘贴您正在使用的Spring版本信息(Spring Boot?)。
android – MockContentResolver在ServiceTestCase中的空指针
我想我想要做的是创建一个MockContentResolver以实现这一点,但在ProviderTestCase2类之外缺少它的示例.当我运行这个脚本但它在addProvider行上的null指针.
有没有人有一个创建/访问模拟内容解析器的例子?在ServiceTestCase中?
public class ondemandPollingServiceTests extends ServiceTestCase<ondemandJobFetchingService> { private MockContentResolver mContentResolver; public ondemandPollingServiceTests() { super(ondemandJobFetchingService.class); } protected void setUp() throws Exception { super.setUp(); mContext = getContext(); ContentProvider cp = new ondemandJobInfoProvider(); mContentResolver.addProvider(ondemandJobInfoProvider.AUTHORITY,cp); } protected void tearDown() throws Exception { super.tearDown(); } public void testJobInsertion() { Uri url = Jobs.JobsColumns.CONTENT_URI; Cursor cursor; cursor = mContentResolver.query(url,null,null); int before = cursor.getCount(); cursor.close(); Intent startIntent = new Intent(); startIntent.setClass(mContext,ondemandJobFetchingService.class); startService(startIntent); cursor = mContentResolver.query(url,null); int after = cursor.getCount(); cursor.close(); assertTrue(before != after); } }
解决方法
backuprestoreremoteservice是什么
backuprestoreremoteservice是指远程数据备份恢复服务,实质就是数据恢复工程师通过网络,远程协助客户将丢失的数据恢复的过程;能够进行远程数据恢复的均为逻辑故障数据,如:误删除、误ghost、误格式化、误分区等等。
本文操作环境:Windows7系统,Dell G3电脑。
backup restore remote service是远程数据备份恢复服务。
实质就是数据恢复工程师通过网络,远程协助客户将丢失的数据恢复的过程。
能够进行远程数据恢复的均为逻辑故障数据,例如:误删除、误Ghost、误格式化、误分区、RAW格式、分区丢失、病毒破坏、数据库文件修复、目录损坏、0字节、OFFICE文件修复、邮件修复等等;也就是说存储介质本身没有问题,只不过是出现一些逻辑性的错误。
进行远程数据恢复服务的前提条件:
电脑系统能够正常启动,并且能够正常链接到互联网络上。能够正常上网,并且可使用一些远程协助,即时通讯交流软件工具。例如:腾讯QQ、MSN、百度HI、TeamViewer等等。网络连接要求顺畅、不卡顿。需要保证恢复操作电脑无木马程序、无病毒。
并且有足够的存储空间用于保存恢复出的数据文件。需要使用一些必要的数据恢复检测软件。
相关介绍:
远程数据服务(Remote Data Services,RDS)是允许我们处理客户端数据的一系列服务的统称。不用担心这方面的问题,因为RDS本身就是ADO的一部分,只有在需要传送和使用客户端数据时,才会使用。
远程数据服务RDS允许程序员开发原生的WINDOWS分布式多层应用系统,或是开发以浏览器为图形用户接口的WEB应用系统。
远程数据服务RDS提供了客户端应用程序在INTERNET/INTRANET或分布式环境中使用ADO中RECORDSET对象的能力。
可以在浏览器中通过远程数据服务RDS取得RECORDSET对象,然后在脚本语言中存取数据。或在原生WINDOWS应用程序中通过RDS取得RECORDSET对象,然后使用程序代码来存取远程数据源中的数据。RDS能够将ADO取得的数据一DCOM或HTTP通信协议由中介软件或中介组件传递给客户端,并且把数据缓存在客户端中让客户端存取数据。
推荐:《编程视频》
以上就是backuprestoreremoteservice是什么的详细内容,更多请关注php中文网其它相关文章!
com.amazonaws.services.ec2.model.DescribeReservedInstancesRequest的实例源码
@Override public Map<AvailabilityZone,List<ReservedInstances>> getReservedInstancesForZone( AvailabilityZone zone,AmazonEC2Client client) throws Exception { OperationStats op = new OperationStats("ec2InstanceStore","getReservedInstancesForZone"); try { Map<AvailabilityZone,List<ReservedInstances>> ret = new HashMap<>(); DescribeReservedInstancesRequest request = new DescribeReservedInstancesRequest() .withFilters(new Filter("availability-zone",Arrays.asList(zone.getZoneName()))) .withSdkClientExecutionTimeout( 600 * 1000) //10 minutes time out for total execution including retries .withSdkRequestTimeout(300 * 1000); //5 minutes time out for a single request DescribeReservedInstancesResult result = client.describeReservedInstances(request); ret.put(zone,result.getReservedInstances()); op.succeed(); return ret; } catch (Exception e) { op.Failed(); logger.error(ExceptionUtils.getRootCauseMessage(e)); throw e; } }
@Override public void onSuccess(DescribeReservedInstancesRequest request,DescribeReservedInstancesResult describeReservedInstancesResult) { List<ReservedInstances> reservedInstances = describeReservedInstancesResult .getReservedInstances(); if (CollectionUtils.isNotEmpty(reservedInstances)) { DateTime endDate = new DateTime(DateTimeZone.UTC).withDayOfMonth(1) .minusMonths(NO_OF_MONTHS) .withTimeAtStartOfDay(); for (ReservedInstances reservedInstance : reservedInstances) { if (reservedInstance.getEnd() != null && reservedInstance.getEnd().before( endDate.toDate())) { continue; } // Set the Region for RI's whose scope is region. if (reservedInstance != null && reservedInstance.getScope() != null && reservedInstance.getScope().equals(REGION)) { reservedInstance.setAvailabilityZone(this.region.getRegionName()); } this.context.reservedInstancesPlan.add(reservedInstance); } } checkAndPatchReservedInstancesPlans(); }
/** * Get Reserved instances for a given region * @param region * @return */ @Override public List<ReservedInstances> getReservedInstances(Region region) { OperationStats op = new OperationStats("ec2InstanceStore","getReservedInstances"); try { AmazonEC2Client client = getClient(region); DescribeReservedInstancesRequest request = new DescribeReservedInstancesRequest() .withSdkClientExecutionTimeout( 600 * 1000) //10 minutes time out for total execution including retries .withSdkRequestTimeout(300 * 1000); //5 minutes time out for a single request DescribeReservedInstancesResult result = client.describeReservedInstances(request); op.succeed(); return result.getReservedInstances(); } catch (Exception e) { op.Failed(); logger.error(ExceptionUtils.getRootCauseMessage(e)); throw e; } }
@Override protected void getReservedInstancesPlans(AWSReservedInstanceContext context) { AtomicInteger currentStageTaskCount = new AtomicInteger(1); DescribeReservedInstancesRequest request = new DescribeReservedInstancesRequest(); DescribeReservedInstancesResult result = new DescribeReservedInstancesResult(); result.setReservedInstances(Arrays.asList(createReservedInstance("ri1"))); new AWSReservedInstanceAsyncHandler(getHost(),currentStageTaskCount,null,context) .onSuccess(request,result); }
@Override public DescribeReservedInstancesResult describeReservedInstances(DescribeReservedInstancesRequest describeReservedInstancesRequest) throws AmazonServiceException,AmazonClientException { throw new UnsupportedOperationException("Not supported in mock"); }
com.amazonaws.services.identitymanagement.model.ListServerCertificatesResult的实例源码
public static void main(String[] args) { final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); boolean done = false; ListServerCertificatesRequest request = new ListServerCertificatesRequest(); while(!done) { ListServerCertificatesResult response = iam.listServerCertificates(request); for(ServerCertificateMetadata Metadata : response.getServerCertificateMetadataList()) { System.out.printf("Retrieved server certificate %s",Metadata.getServerCertificateName()); } request.setMarker(response.getMarker()); if(!response.getIsTruncated()) { done = true; } } }
public List<ServerCertificateMetadata> getCertificates(){ ListServerCertificatesResult listSigningCertificates = identityClient.listServerCertificates(); return listSigningCertificates.getServerCertificateMetadataList(); }
public List<ServerCertificateMetadata> listServerCerts(String path) { logger.info("list server certs,path={}",path); ListServerCertificatesResult result = iam.listServerCertificates(new ListServerCertificatesRequest().withPathPrefix(path)); return result.getServerCertificateMetadataList(); }
今天关于如何使用MockRestServiceServer模拟RestTemplate?和模拟 mock的讲解已经结束,谢谢您的阅读,如果想了解更多关于android – MockContentResolver在ServiceTestCase中的空指针、backuprestoreremoteservice是什么、com.amazonaws.services.ec2.model.DescribeReservedInstancesRequest的实例源码、com.amazonaws.services.identitymanagement.model.ListServerCertificatesResult的实例源码的相关知识,请在本站搜索。
本文标签: