Object Bot 1.0.0 发布,Java 测试数据管理库
我很高兴地宣布,Object Bot 1.0.0正式发布了。
Object Bot 是什么?
Object Bot 是Java 的一个管理测试数据的程序库。
为什么要有 Object Bot?
随着测试数量增多,测试测试数据会散落在各个测试里,每个测试都要编写大量的测试数据初始化相关的代码,而且,通常测试数据还要满足一定的依赖关系,这会让测试数据的初始化代码大幅度增加。
Object Bot 就是为了解决这种困难而产生的。
添加依赖
在项目中添加相应的依赖,如果你的项目用的是 Maven,可以这样添加:
<dependency> <groupId>com.github.dreamhead</groupId> <artifactId>bot-junit5</artifactId> <version>1.0.0</version> </dependency>
如果是 Gradle,可以这样添加:
dependencies {
testImplementation(
"com.github.dreamhead:bot-junit5:1.0.0",
)
}
使用方式
假设我们有如下的一个测试数据类 Foo:
class Foo { private String field1; private String field2; public Foo(String field1, String field2) { this.field1 = field1; this.field2 = field2; } public String getField1() { return this.field1; } public String getField2() { return this.field2; } }
然后,编写一个 Initializer 初始化数据:
import com.github.dreamhead.bot.annotation.BotInitializer; public class FooBotInitializer implements BotInitializer { @Override public void initializer(final ObjectBot bot) { // Give a name to identify your Pojo. bot.define("defaultFoo", new Foo("foo", "bar")); } }
接下来,就可以在测试中使用初始化好的数据了:
@ExtendWith(BotExtension.class) // All test POJOs are initialized with FooBotInitializer. @BotWith(FooBotInitializer.class) public class FooTest { // Use the name to identify your defined Pojo. // It will be injected for each test. @Bot("defaultFoo") private Foo foo; @Test public void should_get_foo() { assertThat(foo.getField1(), is("foo")); } }
如果需要在测试类中修改某些字段,为字段赋予新值,可以这么做:
@ExtendWith(BotExtension.class) @BotWith(FooBotInitializer.class) public class ModifiedFooTest { @Bot(value = "defaultFoo") // Customize field field2 with value blah @StringField(name = "field2", value="blah") private Foo foo; @Test public void should_get_foo() { assertThat(foo.getField2(), is("blah")); } }
如果只是在单个测试中修改一个字段,可以使用 override:
@ExtendWith(BotExtension.class) @BotWith(FooBotInitializer.class) public class FooTest { @Bot("defaultFoo") private Foo foo; @Test public void should_get_foo() { Foo newFoo = override(foo, field("field2").value("blah")); assertThat(newFoo.getField2(), is("blah")); }
就是这么简单,用起来吧!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Kube-OVN 1.4.0 发布!支持跨集群容器网络、NetworkPolicy 日志
从 1.4 开始 Kube-OVN 支持将多个 Kubernetes 集群容器网络打通,不同集群之间的 Pod 可以通过 Pod IP 直接互相通信。本版本还支持 ACL 日志,可以记录因 NetworkPolicy 而丢弃的数据包的数量和原因。本版本还更新了相关依赖并对性能进行了提升,欢迎使用。 新功能: 集成OVN-IC 支持跨集群网络 启用 ACL 日志记录 NetworkPolicy 触发情况 NodePort 类型 Service 访问本地 Pod 的源 IP 保留 支持 vlan 网关类型的动态调整 问题修复: 增加 Forward Accept 规则 修复 kubectl-ko 寻找网卡问题 修复subnet更新冲突问题 修复subnet acl 重叠问题 修复 session lb 丢失问题 其他改进: 升级 ovs 至 2.14 升级 golang 至 1.15 日志级别调整 增加 psp 规则 删除 juju 依赖
-
下一篇
Python C扩展的引用计数问题探讨
Python GC机制 对于Python这种高级语言来说,开发者不需要自己管理和维护内存。Python采用了引用计数机制为主,标记-清除和分代收集两种机制为辅的垃圾回收机制。 首先,需要搞清楚变量和对象的关系: 变量:通过变量指针引用对象。变量指针指向具体对象的内存空间,取对象的值。 对象,类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用计数器) 引用计数 python里每一个东西都是对象,它们的核心就是一个结构体:PyObject,其中ob_refcnt就是引用计数。当一个对象有新的引用时,ob_refcnt就会增加,当引用它的对象被删除,ob_refcnt就会减少。当引用计数为0时,该对象生命就结束了。 typedef struct_object { int ob_refcnt; struct_typeobject *ob_type; } PyObject; #define Py_INCREF(op) ((op)->ob_refcnt++) //增加计数 #define Py_DECREF(op) \ //减少计数 if (--(op)->ob_refc...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程