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

北京架设网站荣耀手机官网网站

北京架设网站,荣耀手机官网网站,短网址还原,google playidea使用junit测试这并不是要成为技术含量很高的职位。 这篇文章的目的是为您提供一些指导#xff0c;以使您的JUnit测试生活更加轻松#xff0c;使您能够在几分钟内编写复杂的测试场景#xff0c;并获得具有高度可读性的测试。 单元测试中有两个主要部分#xff0c;需要编… idea使用junit测试 这并不是要成为技术含量很高的职位。 这篇文章的目的是为您提供一些指导以使您的JUnit测试生活更加轻松使您能够在几分钟内编写复杂的测试场景并获得具有高度可读性的测试。 单元测试中有两个主要部分需要编写许多引导程序代码 设置部分构建初始状态需要构建将被馈送到SUT被测系统的初始对象 断言部分构造输出对象的所需图像并仅对所需数据进行断言。 为了降低构建用于测试的对象的复杂性我建议在以下解释中使用Builder模式 这是域对象 public class Employee {private int id;private String name;private Department department;//setters, getters, hashCode, equals, toString methods 此域对象的生成器将如下所示 public class EmployeeBuilder {private Employee employee;public EmployeeBuilder() {employee new Employee();}public static EmployeeBuilder defaultValues() {return new EmployeeBuilder();}public static EmployeeBuilder clone(Employee toClone) {EmployeeBuilder builder defaultValues();builder.setId(toClone.getId());builder.setName(toClone.getName());builder.setDepartment(toClone.getDepartment());return builder;}public static EmployeeBuilder random() {EmployeeBuilder builder defaultValues();builder.setId(getRandomInteger(0, 1000));builder.setName(getRandomString(20));builder.setDepartment(Department.values()[getRandomInteger(0, Department.values().length - 1)]);return builder;}public EmployeeBuilder setId(int id) {employee.setId(id);return this;}public EmployeeBuilder setName(String name) {employee.setName(name);return this;}public EmployeeBuilder setDepartment(Department dept) {employee.setDepartment(dept);return this;}public Employee build() {return employee;} } 如您所见我们有一些工厂方法 public static EmployeeBuilder defaultValues()public static EmployeeBuilder clone(Employee toClone)public static EmployeeBuilder random() 这些方法返回不同的构建器 defaultValues每个字段的一些硬编码值或Java默认值-当前实现 clone将获取初始对象中的所有值并使您可以更改其中一些值 random将为每个字段生成随机值。 当您有很多在测试中不需要的字段时非常有用但是您需要对其进行初始化。 getRandom *方法是在另一个类中静态定义的。 您可以添加其他方法来根据需要初始化构建器。 此外构建器还可以处理一些不那么容易构建和更改的对象。 例如让我们稍微更改Employee对象使其不可变 public class Employee {private final int id;private final String name;private final Department department;... } 现在我们失去了按需更改字段的可能性。 但是使用以下形式的构建器我们可以在构造对象时重新获得这种可能性 public class ImmutableEmployeeBuilder {private int id;private String name;private Department department;public ImmutableEmployeeBuilder() {}public static ImmutableEmployeeBuilder defaultValues() {return new ImmutableEmployeeBuilder();}public static ImmutableEmployeeBuilder clone(Employee toClone) {ImmutableEmployeeBuilder builder defaultValues();builder.setId(toClone.getId());builder.setName(toClone.getName());builder.setDepartment(toClone.getDepartment());return builder;}public static ImmutableEmployeeBuilder random() {ImmutableEmployeeBuilder builder defaultValues();builder.setId(getRandomInteger(0, 1000));builder.setName(getRandomString(20));builder.setDepartment(Department.values()[getRandomInteger(0, Department.values().length - 1)]);return builder;}public ImmutableEmployeeBuilder setId(int id) {this.id id;return this;}public ImmutableEmployeeBuilder setName(String name) {this.name name;return this;}public ImmutableEmployeeBuilder setDepartment(Department dept) {this.department dept;return this;}public ImmutableEmployee build() {return new ImmutableEmployee(id, name, department);} } 当我们难以构造对象或需要更改最终字段时这非常有用。 这是它的最终结果 没有建设者 Testpublic void changeRoleTestWithoutBuilders() {// building the initial stateEmployee employee new Employee();employee.setId(1);employee.setDepartment(Department.DEVELOPEMENT);employee.setName(John Johnny);// testing the SUTEmployeeManager employeeManager new EmployeeManager();employeeManager.changeRole(employee, Department.MANAGEMENT);// building the expectationsEmployee expectedEmployee new Employee();expectedEmployee.setId(employee.getId());expectedEmployee.setDepartment(Department.MANAGEMENT);expectedEmployee.setName(employee.getName());// assertionsassertThat(employee, is(expectedEmployee));} 与建设者 Testpublic void changeRoleTestWithBuilders() {// building the initial stateEmployee employee EmployeeBuilder.defaultValues().setId(1).setName(John Johnny).setDepartment(Department.DEVELOPEMENT).build();// building the expectationsEmployee expectedEmployee EmployeeBuilder.clone(employee).setDepartment(Department.MANAGEMENT).build();// testing the SUTEmployeeManager employeeManager new EmployeeManager();employeeManager.changeRole(employee, Department.MANAGEMENT);// assertionsassertThat(employee, is(expectedEmployee));} 如您所见测试的大小要小得多对象的构造也变得更加简单如果代码格式更好也会更好。 如果您具有更复杂的域对象在实际应用程序中尤其是在遗留代码中则差异更大。 玩得开心 参考来自Java出现日历博客的JCG合作伙伴 Stefan Bulzan 在JUnit测试中使用了Builder模式 。 翻译自: https://www.javacodegeeks.com/2012/12/using-builder-pattern-in-junit-tests.htmlidea使用junit测试
http://www.zqtcl.cn/news/246890/

相关文章:

  • 襄阳做公司网站的软件公司简单网页html模板
  • 有网站如何做app开发公司认领工程网站
  • 济宁网站建设云科网络wordpress幻灯片简码
  • 国外做问卷网站好生产企业展厅设计
  • 提供网站制作公司报价长治网站制作平台
  • 丹东网站开发网站关键词和网页关键词的样本
  • 表白网站在线制作软件北京市轨道交通建设管理有限公司网站
  • asp做微网站设计网站有必要备案吗
  • 网站建设推广营销策划广州在线网页制作
  • photoshop怎么做网站局域网内用自己电脑做网站
  • 四会网站建设服装店网站建设规划书
  • 网站规范化建设海南百度网站建设
  • 商业网站建设设计公司平面ui设计网站
  • 南宁建站免费模板网页无法访问如何解决h5
  • 怎么查网站后台地址电商网站怎样做优化才最合理
  • 太原网站建设总部在哪服务器做多个网站
  • 自己做网站怎么能被访问Net网站开发招聘
  • 春晗环境建设有限公司网站wordpress伪静态卡死
  • 网站建设后期维护流程车培训网站建设
  • 云南建设企业网站wordpress用户角色权限
  • 代码做网站常用单词成品短视频网站源码搭建
  • 北京网站建设推四川省建设厅燃气网站
  • 网站 功能呢网站建设设计师的工作内容
  • 网站设计素材包微信公众号平台官网免费注册
  • 做设计灵感的网站网站网站建设
  • 华强北附近网站建设电商网站建设规划
  • 泰和网站制作长尾词排名优化软件
  • 国外做的好的鲜花网站万网二手已备案域名
  • 那个网站做的系统最好开奖视频网站开发
  • 学设计的网站推荐南京做网站南京乐识专业