当前位置: 首页 > 软件库 > 开发工具 > 测试工具 >

Object Bot

Java 测试数据管理库
授权协议 MIT
开发语言 Java
所属分类 开发工具、 测试工具
软件类型 开源软件
地区 国产
投 递 者 闻人弘雅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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"));
  }

就是这么简单,用起来吧!

 

  • Object Bot Object bot is a library for setting up Java objects as test data, which is inspired by Factory Bot. Latest Release 1.0.0 More details in Release Notes. Object Bot in Your Build To add a dep

  • 汇编IDE(RadAsm),object file not found报错,解决办法 汇编IDE,好多人下载了RADASM,包括汉化版,安装之后新建masm的DOSAPP工程,编译不过,错误是LINK : fatal error L1093: first.obj : object file not found 原因: 原版的masm.ini配置文件里面有错误,缺少了参数,导致DOSLINK缺少参数

  • 在用PySimpleGUI和chatterbot编写一个chatbot的过程中,遇到了一些安装和导入包的问题,在此做一个汇总,希望可以帮助到遇到类似问题的你。 PySimpleGUI官方repo中的chatbot范例链接:Link pip3 install chatterbot 报错 如果你的Python版本在3.8或3.8以上,在安装chatterbot中的spacy时,会出现安装不成功的情况:

  • 问题背景:今天爬取数据时进行数据的处理时发现报错,'str' object has no attribute 'append',当时的字面意思是我想列表中添加的问题,str类型没有append方法,但是看了看创建的是列表没错,思前想后不断调试终于发现问题所在,添加没问题,添加以后的json转化格式出了问题, for index in self.category_html["data

  • python使用raise ValueError('修改信息失败')抛出异常,使用如下捕获异常: except ValueError as e: traceback.print_exc() return { 'msg': e,                #错误写法 'code': 400, } except ValueError as e

  • 一、获取bot token 这是所有开发者的必经之路,此仪式的目的在于获取telegram的授权以及一个独特的bot token,此token将在下文的编程的环节再次发挥作用。 首先在telegram中搜索 botfather,并和botfather开始对话: 按下"/start"之后,botfather会回复一堆操作指令给你 紧接着回复"/newbot"开始创建你的bot,botfather会要

  • Ai-Bot是Android+Windows平台上的node.js自动化框架。 1、跟python的区别?跟uipaht uibot 其他框架的区别? 1) VS python 相同点:Ai-Bot基于node.js语言的一款自动化框架。和python一样,有同样强大的社区库调用。 不同点: 1、Ai-Bot内置chromium内核浏览器,绕过webdriver驱动直接与浏览器内核通信。pytho

  • 涉及的论文 Neural Conversational Model https://arxiv.org/abs/1506.05869 Luong attention mechanism(s) https://arxiv.org/abs/1508.04025 Sutskever et al. https://arxiv.org/abs/1409.3215 GRU Cho et al. https:/

  • 报错 class Employee: def __init__(self, name, salary): self.__name = name self.__salary = salary def print_info(self): print(self.__name, self.__salary) def get_na

  • 问题原因 这个错误的意思是将模块作为一个函数来调用,但他本身却无法被调用。问题出现的原因在于import机制。Python导入模块的方法有两种:import module 和 from module import,区别是前者所有导入的东西使用时需加上模块名的限定,而后者不要。 解决措施 将import 后的内容加上包限制 打个比方 我现在有一个文件Group 内容如下 class Group:

 相关资料
  • 1 概述 测试管理是xxx 测试管理的工作包括: 2 方法 3 工具 3.1 JIRA Zephyr 强烈推荐 3.2 TechExcel DevTest 推荐试用 4 平台 5 参考 从需求到研发,再到发布案例 给软件测试人员15个最好的测试管理工具

  • 任何web应用程序的核心内容之一是控制和维持用户交互状态的机制。这通常被认为是会话管理,定义为一系列用于管理用户和web应用系统交互状态的措施。这广泛覆盖了从用户如何认证到他们登出时发生的任何事情。 HTTP是一个无状态的协议,意味着web服务器在相应用户请求时不需要联系其他请求。但甚至有时是简单的应用程序逻辑也可能需要通过一个“会话”来关联用户发送的多个请求。这便需要第三方解决方案的介入,通过现

  • 我是wordpress的新手,在管理数据库方面有困难。我已经安装了“管理员”插件来管理数据库。我已经创建了一个名为“usersupp_admin”的新表。现在我还创建了一个自定义模板,该模板将使用PDO语句连接到此数据库,现在的问题是在哪里可以获取主机、数据库名、用户和密码?以下是代码: 任何帮助都将不胜感激。

  • 在本章节,提供了关于诸葛io数据管理的相关文档: 数据模型 数据接入技术 identify记录用户身份 UTM参数标识流量 DeepShare跨应用商店的来源分析 事件分组&重要事件(星标事件) 数据的别名/隐藏/停用 字符串/数值/日期的设置 用户信息脱敏与数据安全 成员角色权限表

  • 这一章介绍如何在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录 (Bind mounts)

  • 频道流水报表管理 获取频道报表 获取频道资金流水 获取频道打赏流水 获取频道发红包/抢红包记录 获取频道付费流水 获取观众观看流水_V2 获取观众观看流水_V1 获取频道报名问卷数据 获取频道问卷列表数据 获取频道观众列表V2 获取频道观众列表

  • “数据管理”用来管理“百度统计-分析云”所追踪的数据,帮助您对产品内所有的数据进行统一管理和维护。 新版分析云的数据模型由之前的“PV模型”升级为“事件模型”。支持您对产品进行更多场景下的精细化分析。在使用分析云进行分析前,您需要在“数据管理”内定义“事件”和“属性”。 事件是用户在产品上的行为,如“浏览页面”、“点击元素”等。 属性是用来描述事件的维度。在分析云中,属性不从属于具体事件,您需要从

  • CREATE TABLE充当来自CSVREAD的SELECT*('c://users/h/downloads/SERVES.csv');SQL语句“create TABLE SERVES AS SELECT*FROM CSVREAD([*]'c://users/h/downloads/SERVES.csv')”中的语法错误;SQL语句:CREATE TABLE充当从CSVREAD中选择*('c:/