ObjectBot是什么?
ObjectBot是Java的一个管理测试数据的程序库。
为什么要有ObjectBot?
随着测试数量增多,测试测试数据会散落在各个测试里,每个测试都要编写大量的测试数据初始化相关的代码,而且,通常测试数据还要满足一定的依赖关系,这会让测试数据的初始化代码大幅度增加。
ObjectBot就是为了解决这种困难而产生的。
添加依赖
在项目中添加相应的依赖,如果你的项目用的是Mave,可以这样添加:
<depedecy><groupId>com.github.dreamhead</groupId><artifactId>bot-juit5</artifactId><versio>1.0.0</versio></depedecy>如果是Gradle,可以这样添加:
depedecies{testImplemetatio("com.github.dreamhead:bot-juit5:1.0.0",)}使用方式
假设我们有如下的一个测试数据类Foo:
classFoo{privateStrigfield1;privateStrigfield2;publicFoo(Strigfield1,Strigfield2){this.field1=field1;this.field2=field2;}publicStriggetField1(){returthis.field1;}publicStriggetField2(){returthis.field2;}}然后,编写一个Iitializer初始化数据:
importcom.github.dreamhead.bot.aotatio.BotIitializer;publicclassFooBotIitializerimplemetsBotIitializer{@Overridepublicvoidiitializer(fialObjectBotbot){//GiveaametoidetifyyourPojo.bot.defie("defaultFoo",ewFoo("foo","bar"));}}接下来,就可以在测试中使用初始化好的数据了:
@ExtedWith(BotExtesio.class)//AlltestPOJOsareiitializedwithFooBotIitializer.@BotWith(FooBotIitializer.class)publicclassFooTest{//UsetheametoidetifyyourdefiedPojo.//Itwillbeijectedforeachtest.@Bot("defaultFoo")privateFoofoo;@Testpublicvoidshould_get_foo(){assertThat(foo.getField1(),is("foo"));}}如果需要在测试类中修改某些字段,为字段赋予新值,可以这么做:
@ExtedWith(BotExtesio.class)@BotWith(FooBotIitializer.class)publicclassModifiedFooTest{@Bot(value="defaultFoo")//Customizefieldfield2withvalueblah@StrigField(ame="field2",value="blah")privateFoofoo;@Testpublicvoidshould_get_foo(){assertThat(foo.getField2(),is("blah"));}}如果只是在单个测试中修改一个字段,可以使用override:
@ExtedWith(BotExtesio.class)@BotWith(FooBotIitializer.class)publicclassFooTest{@Bot("defaultFoo")privateFoofoo;@Testpublicvoidshould_get_foo(){FooewFoo=override(foo,field("field2").value("blah"));assertThat(ewFoo.getField2(),is("blah"));}就是这么简单,用起来吧!
评论