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

成都网站定制中心工商企业信息查询公示系统

成都网站定制中心,工商企业信息查询公示系统,一个域名权重3如果做网站的话权重会降为0吗,公司变更法人需要多少费用使用junit进行单元测试在上一篇文章中#xff0c;我描述了新的Java 2 AWS开发工具包#xff0c;它为调用不同AWS服务的Java客户端提供了非阻塞IO支持。 在本文中#xff0c;我将介绍一种用于单元测试AWS DynamoDB调用的方法。 有几种方法可以启动DynamoDB的本地版本– 1. … 使用junit进行单元测试 在上一篇文章中我描述了新的Java 2 AWS开发工具包它为调用不同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方法如果Docker代理在JUnit5扩展方法中可用的话。 在我的github存储库中提供了使用这三种方法进行了全面工作测试的示例– https://github.com/bijukunjummen/boot-with-dynamodb 翻译自: https://www.javacodegeeks.com/2019/01/testing-dynamodb-using-junit5.html使用junit进行单元测试
http://www.zqtcl.cn/news/911975/

相关文章:

  • 广州智迅网络做网站免费下载ps素材网站
  • 什么网站时候做伪静态开发软件定制
  • 找人做网站 多少钱西宁市公司网站建设
  • 网页设计 教程网站找权重高的网站方法
  • 网站建设本地还是外地重庆seo排名方法
  • 那个网站做网编好昨晚兰州发生了什么事
  • 温州建设局网站首页哪里可以学做资料员的网站
  • 网站怎样在360做优化wordpress文章图片在线裁剪
  • 彭州建设网站建设网站哪间公司比较好
  • qq空间网站根目录慧聪网首页
  • 制作小程序和网站的公司杭州品牌设计公司
  • 显示网站翻页代码wordpress 金融 模板下载
  • 用双语网站做seo会不会phpmysql网站
  • 长沙专业网站建设公司优惠券怎么做自己的网站
  • 做网站如何宣传怎么弄公众号
  • seo网站策划书网站建设资金投入
  • 做网站东莞东莞建网站wordpress 多文件上传
  • 公司注册流程聊城网站优化案例
  • 化妆品网站建设实施方案杭州seo代理公司
  • 网站小图片素材高质量外链
  • 福州个人建站模板有没有一些有试卷做的网站
  • 教你如何建设网站阿里去旺道seo优化
  • 想做一个个人网站怎么做网站组成部分
  • 旅游门户网站模板下载全国最新产品代理商
  • 老河口网站设计中企动力科技做什么的
  • 如何建立网站管理系统甘孜州住房和城乡规划建设局网站
  • 阿里网站建设新闻门户网站什么意思
  • 桂林微信网站wordpress 连接信息
  • 电商网站开发简历跨境电商怎么搞
  • php小型网站开发百度知道小程序