当前位置: 首页 > news >正文

一个人做网站好做吗中国砖瓦招聘求职平台

一个人做网站好做吗,中国砖瓦招聘求职平台,wordpress页面传递参数,wordpress词汇插件在之前的文章中#xff0c;我描述了新的Java 2 AWS SDK#xff0c;它为调用不同AWS服务的Java客户端提供了非阻塞IO支持。 在本文中#xff0c;我将介绍一种用于单元测试AWS DynamoDB调用的方法。 有几种方法可以启动DynamoDB的本地版本– 1. AWS提供了一个DynamoDB本地 … 在之前的文章中我描述了新的Java 2 AWS SDK它为调用不同AWS服务的Java客户端提供了非阻塞IO支持。 在本文中我将介绍一种用于单元测试AWS DynamoDB调用的方法。 有几种方法可以启动DynamoDB的本地版本– 1. AWS提供了一个DynamoDB本地 2. Localstack提供了一种在本地启动大量AWS服务的方法 3. DynamoDB Local的Docker版本 4. Dynalite DynamoDB的基于节点的实现 现在可以对应用程序进行单元测试我需要能够在测试运行之前使用以下选项之一启动DynamoDB的嵌入式版本然后在测试完成后将其关闭。 我采用了三种方法 1.使用JUnit 5扩展 该扩展在内部启动AWS DynamoDB Local并在测试后将其调低。 2.使用测试容器启动Docker版本DynamoDB Local 3.使用测试容器启动DynaLite JUnit5扩展 JUnit5扩展提供了方便的挂钩点来启动 嵌入式版本的DynamoDB用于测试。 它通过将DynamoDB Local版本作为Maven依赖项来工作 dependencies {...testImplementation(com.amazonaws:DynamoDBLocal:1.11.119)... } 这种依赖关系的一个复杂之处在于存在与DynamoDB Local进行交互的本机组件dll.so等并且为了将它们放置在正确的位置我依赖于Gradle任务 task copyNativeDeps(type: Copy) {mkdir build/native-libsfrom(configurations.testCompileClasspath) {include *.dllinclude *.dylibinclude *.so}into build/native-libs }test {dependsOn copyNativeDeps } 它将本机库放在build / native-libs文件夹中扩展名在内部将此路径设置为系统属性 System.setProperty(sqlite4java.library.path, libPath.toAbsolutePath().toString()) 这是JUnit5扩展的代码库所有这些都已经连接起来-https://github.com/bijukunjummen/boot-with dynamodb / blob / master / src / test / kotlin / sample / dyn / rules / LocalDynamoExtension.kt 使用此扩展名的测试如下所示 class HotelRepoTest {companion object {RegisterExtensionJvmFieldval localDynamoExtension LocalDynamoExtension()BeforeAllJvmStaticfun beforeAll() {val dbMigrator DbMigrator(localDynamoExtension.syncClient!!)dbMigrator.migrate()}}Testfun saveHotel() {val hotelRepo DynamoHotelRepo(localDynamoExtension.asyncClient!!)val hotel Hotel(id 1, name test hotel, address test address, state OR, zip zip)val resp hotelRepo.saveHotel(hotel)StepVerifier.create(resp).expectNext(hotel).expectComplete().verify()} } 该代码可以与功能齐全的DynamoDB进行交互。 DynamoDB本地Docker的 该JUnit5扩展方法非常有效但它需要与本地二进制一个额外的依赖在被拉到一个更简洁的方法可以是使用好。 Testcontainers旋转起来DynamoDB本地下列方式的泊坞窗版本 class HotelRepoLocalDynamoTestContainerTest {Testfun saveHotel() {val hotelRepo DynamoHotelRepo(getAsyncClient(dynamoDB))val hotel Hotel(id 1, name test hotel, address test address, state OR, zip zip)val resp hotelRepo.saveHotel(hotel)StepVerifier.create(resp).expectNext(hotel).expectComplete().verify()}companion object {val dynamoDB: KGenericContainer KGenericContainer(amazon/dynamodb-local:1.11.119).withExposedPorts(8000)BeforeAllJvmStaticfun beforeAll() {dynamoDB.start()}AfterAllJvmStaticfun afterAll() {dynamoDB.stop()}fun getAsyncClient(dynamoDB: KGenericContainer): DynamoDbAsyncClient {val endpointUri http:// dynamoDB.getContainerIpAddress() : dynamoDB.getMappedPort(8000)val builder: DynamoDbAsyncClientBuilder DynamoDbAsyncClient.builder().endpointOverride(URI.create(endpointUri)).region(Region.US_EAST_1).credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(acc, sec)))return builder.build()}...} } 此代码在一个随机的未占用端口上启动DynamoDB并提供此信息以便可以使用此信息创建客户端。 根据此处报告的问题我不得不采取一些Kotlin解决方法。 使用Dynalite的 Dynalite是DynamoDB的基于javascript的实现可以使用TestContainer方法再次运行以进行测试。 但是这次已经有了Dynalite的TestContainer模块 。 我发现它不支持JUnit5并发送了Pull请求来提供此支持在迭代中可以使用原始docker镜像这就是测试的样子 class HotelRepoDynaliteTestContainerTest {Testfun saveHotel() {val hotelRepo DynamoHotelRepo(getAsyncClient(dynamoDB))val hotel Hotel(id 1, name test hotel, address test address, state OR, zip zip)val resp hotelRepo.saveHotel(hotel)StepVerifier.create(resp).expectNext(hotel).expectComplete().verify()}companion object {val dynamoDB: KGenericContainer KGenericContainer(quay.io/testcontainers/dynalite:v1.2.1-1).withExposedPorts(4567)BeforeAllJvmStaticfun beforeAll() {dynamoDB.start()val dbMigrator DbMigrator(getSyncClient(dynamoDB))dbMigrator.migrate()}AfterAllJvmStaticfun afterAll() {dynamoDB.stop()}fun getAsyncClient(dynamoDB: KGenericContainer): DynamoDbAsyncClient {val endpointUri http:// dynamoDB.getContainerIpAddress() : dynamoDB.getMappedPort(4567)val builder: DynamoDbAsyncClientBuilder DynamoDbAsyncClient.builder().endpointOverride(URI.create(endpointUri)).region(Region.US_EAST_1).credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(acc, sec)))return builder.build()}...} }结论 所有这些方法对于能够测试与DynamoDB的集成都是有用的。 我个人的喜好是使用TestContainers方法如果通过JUnit5扩展方法可以使用其他Docker代理则可以使用。 在我的github存储库中可以找到使用所有三种方法进行了完全正常工作的测试的示例– https://github.com/bijukunjummen/boot-with-dynamodb 翻译自: https://www.javacodegeeks.com/2019/01/testing-dynamodb-using-junit5.html
http://www.huolong8.cn/news/260893/

相关文章:

  • itc 做市场分析的网站注册商标名字推荐
  • 北京网站设计制作关键词wordpress电影网教程
  • 外贸网站设计公司价格中国欧洲陆运专线
  • .net做网站用什么的多免费的个人简历模板pdf
  • 自己做的网站加载不出验证码c2c商城网站建设公司
  • 网站建设的关键要素网站建设及运营工作总结
  • 怎么用html做移动网站烟台百度网站推广
  • 阿里云建站简单三栏网站
  • 河北世达建设集团有限公司网站手机网站建设知识
  • 永康住房和城乡建设局网站WordPress增加积分系统
  • 常德举报网站个人做流量大的网站
  • 橘色网站模板中小企业网站建设客户需求调查问卷
  • 厚街h5网站建设内蒙古住房城乡建设部网站
  • 学做ppt的网站有哪些wordpress is tax
  • 军博网站建设二人对战的微信小程序
  • 全国网站建设汇编网络培训班心得体会800字
  • 做网站最贵软件外包公司哪个好
  • 贵金属十大正规app平台排名简单网站建设优化推广
  • 泵网站建设长沙航科网页制作
  • 不花钱自己可以做网站吗给别人做软件的网站
  • c2c网站开发策划做网站还 淘宝
  • 网站404页面怎么做seo怎么做
  • 利用花生壳做网站做网站要哪些人员
  • 佛山网站建设的公司wordpress获取小工具
  • 河北汉佳 做网站的公司自己电脑做服务器建网站
  • 怎么做情侣网站网站开发工程师是干嘛的
  • 网站备案核js特效如何放到网站上
  • apple网站模板本子网站建设
  • 目前哪些企业需要做网站建设的呢网络产品运营与推广
  • 厚街网站建设公司erp系统一套大概多少钱