JUnit Jupiter
既然assertj看完了,既然testcontainers、spring、springboot几乎每个框架都接入了jupiter的@ExtendWith,那就好好看看早就想看的jupiter吧! basic @DisplayName(“😱”) assertion assumption @Disabled @Tag ...
既然assertj看完了,既然testcontainers、spring、springboot几乎每个框架都接入了jupiter的@ExtendWith,那就好好看看早就想看的jupiter吧! basic @DisplayName(“😱”) assertion assumption @Disabled @Tag ...
之前就一直看到很多开源框架使用AssertJ做测试,一直想看看,也没来得及。最近又好好看了看近期接触的优秀开源框架的测试用例,AssertJ再度映入眼帘。简单试了一下,果然比JUnit爽多了。不能忍了,今天终于抽空好好看了看AssertJ的架构。 断言谁 架构 一些优雅的用法 断言描述: as(String description, Object… arg...
今天在看assertj的实现时,看到了一个很好玩的东西:用泛型实现父子类的fluent api。它引用的一篇文章,回答了我之前很多次看到这种泛型写法时的满头问号。 fluent api 父类的this isNotNull在不同子类里抄了好多遍 为什么不写到父类里? 自界泛型 用泛型模拟一个能感知父子类具体类型的this ...
今天干了一件蠢事:遍历索引,一时偷懒,索引的条目也还在可接受范围内,所以使用page翻页遍历所有数据,结果翻车了~ 翻页遍历 如果文档得分相同,怎么排序? tie breaker 解决方法 手动指定sort search_after search_after + pit in time ...
今天被maven的transitive依赖搞懵逼了,一下午未果。晚上又查了查,突然意识到自己对dependencyManagement的理解不太完整,果然是栽到这个上面了…… 依赖仲裁 dependencyManagement 功能一:统一管理child pom依赖 功能二:控制transitive依赖的版本 dependencyMan...
第一次接触testcontainers,是改spring-data-elasticsearch的代码,当时就被testcontainers的集成测试惊艳到了。后来第二次再碰到testcontainers,是研究elasticsearch client时看别人用testcontainers测试client,第二次见面就感觉熟悉多了。小小研究之后,真的感觉相见恨晚,集成测试的问题从此解决了!再也...
elasticsearch有很多Java client,底层的、上层的,废弃的、现存的,需要好好梳理一下,不然编程的时候一脸懵逼,尤其是使用spring boot自动配置client的时候。 https://spinscale.de/posts/2022-03-03-running-the-elasticcc-platform-part-2.html 另外spring data e...
虽然elasticsearch是分布式系统,但挡不住误操作啊!一不小心把数据写坏了、删错了,分布式系统也没辙。为了不让多年努力毁于一旦,必须花时间做个备份。手中有备份,自然可以随便造。 hdfs plugin data dump backup to hdfs 配置repo hadoop name node ...
使用docker in docker在容器内构建docker镜像。主要是为了集成到gitlab ci里。 dind --privileged 好处 弊端 dood: expose docker socket to container docker:latest dind/dood的示例 ...
辣鸡canal,文档写的一坨翔。碰到问题只能看代码去发现些端倪。 基本概念 配置 关于zookeeper 容器化 启动canal-admin 创建cluster 创建instance 启动cluster canal-server optional:启动单机canal-server 关于...