`
teamojiao
  • 浏览: 350321 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

验证小工具:检查返回的实体类中的空字段

阅读更多

在我们做接口测试的时候通常会验证返回的实体类中的空字段。 但是如果一个个字段的 assertNotNull ,不仅影响其准确性,而且会延长编码时间和调试时间。

 

这里介绍一个小工具,它可以把我们频繁的 assertNotNull 转变成一句话,实现更强大的功能。 希望大家可以提出宝贵意见哦!!

方法如下:

    public static String assertGetMethod(Object objectClass) {

       String str = “” ;

       Object[] args = new Object[0];

       Class itemClass = objectClass.getClass();

       Method[] methods = itemClass.getMethods();

       for (Method method : methods) {

           if (method.getName().startsWith( “get” )) {

              try {

                  Object oa = method.invoke(objectClass, args);

                  if ( null != oa) {

                     System. out .println(method.getName() + “:”

                            + oa.toString());

                  } else {

                     str+=method.getName().substring(3, method.getName().length())+ “,” ;

                    

                  }

              } catch (IllegalArgumentException e) {

                  e.printStackTrace();

              } catch (IllegalAccessException e) {

                  e.printStackTrace();

              } catch (InvocationTargetException e) {

                  e.printStackTrace();

              }

           }

       }

 

       return ( “” .equals(str)) ? null : (str.substring(0,str.length()-1));

    }

这个工具是用反射法实现的,具体的实现我就不说了。主要介绍一下用法吧。

举个例子好了。

例如,这里有一个类 A

public class A {

  String a ;

  String b ;

  String c ;

public String getA() {

    return a ;

}

public void setA(String a) {

    this . a = a;

}

public String getB() {

    return b ;

}

public void setB(String b) {

    this . b = b;

}

public String getC() {

    return c ;

}

public void setC(String c) {

    this . c = c;

}

}

—————————————————————–

 

工具说明:

public static void main(String[] args) {

       A a = new A();

       System. out .println(assertGetMethod (b));

}

打印出: A,B (为空的方法名)

 

public static void main(String[] args) {

       A b = new A();

b.setA( “a” );

       b.setB( “b” );

b.setC( “c” );

       System. out .println(assertGetMethod (b));

}

打印出: null

—————————————————————–

使用说明:

我们验证的时候,如果要求所有的字段不能为空。 那么只要 :

Assert.assertNull(

以下字段值为空: n” +assertGetMethod (b)”,

assertGetMethod (b)

);

 

如果要求个别值可以为空 ( B C 可以为空 ) ,那么只要:

    public static void main(String[] args) {

       A a = new A();

       a .setA( “a” );

       String[] nullNames = assertGetMethod (a ).split( “,” );

       String validName= “” ;

       for (String string : nullNames) {

           if (!string.equals( “B” )

                  && !string.equals( “C” )){

              validName = string + “,” ;

           }

       }

       Assert.assertNull(

以下字段值为空: n” + validName”,

validName

);

    }

分享到:
评论

相关推荐

    java反射遍历实体类属性和类型,并赋值和获取值的简单方法

    在Java编程中,反射是一种强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法的信息。这里我们将深入探讨如何使用Java反射遍历实体类的属性和类型,并进行赋值和获取值的操作。 首先,我们需要理解Java...

    很好的一款解析Json字符串的工具

    描述中提到,该工具能“在工具中进行解析,方便快捷的看到实体类”,这表明该工具具备自动分析JSON结构并生成对应实体类的能力。这对于接口调试和数据处理至关重要,因为它能减少手动解析和转换的时间,提高开发效率...

    Java判断对象是否为空(包括null ,"")的方法

    这篇文章将深入探讨如何在Java中检查对象是否为`null`或空字符串,并提供一个实用的工具类示例,帮助开发者实现这一功能。 首先,我们来看如何判断一个对象是否为`null`。在Java中,你可以直接使用`==`运算符与`...

    validator框架客户端验证代码

    压缩包中的文件可能包含了实现上述功能的代码示例,包括配置文件、实体类、控制器和视图部分。通过学习和使用这些代码,你可以更好地理解和掌握如何在实际项目中运用Validator框架进行客户端验证。 总结来说,...

    struts+hibernate+mysql登录验证小实例

    开发者定义实体类(如User),并配置映射文件,使得可以通过对象的方式来操作数据库中的用户记录,如查询、插入和更新。 **MySQL数据库** MySQL是一个高效、稳定且流行的开源关系型数据库。在这个登录系统中,MySQL...

    hibernate的校验框架validate后端验证

    Hibernate是Java领域中广泛应用的对象关系映射(ORM)框架,它提供了一套强大的数据验证工具——Hibernate Validator,这正是"hibernate的校验框架validate"的核心内容。本文将详细介绍Hibernate Validator及其在...

    22-05-04-047_Validation(表单验证之DataAnnotations与FluentValidation)

    本主题将深入探讨两种常用的验证框架:DataAnnotations和FluentValidation,它们都是用于.NET Core应用程序中的数据验证工具。在这个讨论中,我们将重点关注如何在nopCommerce 4.40这个流行的电子商务平台中应用这些...

    Input_Validation.zip_it_java validation

    1. **内置验证库**:Java提供了一些内置的验证工具,如`java.util.regex.Pattern`类,用于创建正则表达式进行字符串验证。例如,我们可以使用正则表达式验证电子邮件地址、电话号码等格式。 2. **Bean Validation**...

    使用三大框架编写登陆模块出现的一个很蛋疼的问题解析--另附测试通过的登录模块程序

    确保实体类的属性与数据库字段一一对应,并正确设置映射关系。 3. **事务管理**:登录验证通常涉及到数据库操作,需要确保这些操作在同一个事务中进行,以保证数据的一致性。 4. **安全问题**:不正确的密码比对可能...

    struts 的validator框架验证

    Struts的Validator框架是Java Web开发中用于处理用户输入验证的一种强大的工具,它与MVC架构中的控制器层紧密结合,提供了一种便捷的方式来确保用户提交的数据符合预设的业务规则。这个框架大大简化了数据验证的过程...

    Structs2和Hibernate简单登录验证实例.zip

    在Hibernate中,我们需要定义实体类来映射数据库表,例如User类,包含id、username和password等字段。然后,通过SessionFactory创建Session,使用Session的get或load方法查询数据库,与用户输入的用户名和密码进行...

    hibernate_validator 官方参考文档

    - 字段级约束直接作用于实体类的字段上,如`@NotNull`。 - 属性级约束则通过getter方法关联,允许更细粒度的控制。 - 类级约束检查整个类的状态,通常用于复杂的业务规则。 2. **验证执行细节**: - 获取`...

    SAP Table and Field search techniques

    - **显示字段:** | 表 | 保持查找 - **字典:表/结构:** Name | 透明 | 成功 - **显示字段:** | 表 | 这意味着,我们需要进一步深入探索以找到实际存储数据的透明表。透明表是存储数据的实体,而视图则由多个...

    北大青鸟软件课程全部单词

    - **check**:检查,验证数据的约束条件。 - **course**:课程,学习计划的一部分。 - **score**:分数,评价或成绩。 - **foreign**:外键,关联两个表中的记录。 - **binary**:二进制,只有两种状态的数据类型。 ...

    hibernate3.6 文档(pdf 格式)

    - **实体查询**:展示如何查询并返回实体对象。 - **处理关联和集合**:说明如何在原生 SQL 查询中处理关联对象和集合。 - **返回多个实体**:介绍如何在一个查询中返回多个实体类型。 - **返回非管理实体**:解释...

    memcached-session-manager-tc6-1.6.4.zip

    2. 定义验证规则:在模型类(实体类)上使用注解定义验证规则,例如`@NotNull`表示字段不能为空,`@Size(max=10)`表示字段长度不能超过10。 3. 执行验证:在处理用户请求时,调用验证框架提供的方法进行验证,框架会...

    应用SSH框架,实现登陆

    在IT行业中,SSH框架是一个非常常见的开发工具,它包含了Spring、Struts和Hibernate这三个核心组件。Spring提供了依赖注入和面向切面编程的能力,Struts处理Web层的请求和响应,而Hibernate则负责对象关系映射,使得...

    validator校验所需jar包

    - 在需要校验的实体类上添加对应的验证注解。 - 创建一个Validator实例,使用`ValidatorFactory`来获取。 - 对对象进行校验,调用`validate()`方法,如果数据不符合规则,会返回一个包含错误信息的`...

    spring注入web端校验类

    标题中的“spring注入web端校验类”指的是在Spring框架中,如何将验证逻辑整合到Web应用程序中,以便对用户输入的数据进行有效性检查。在Web应用中,数据验证是至关重要的,可以防止非法数据进入系统,确保数据的...

    Spring Boot学习入门之表单验证

    在上面的例子中,我们创建了一个`User`实体类,包含`username`和`password`字段。为了进行表单验证,我们在这些字段上添加了相应的注解: ```java public class User { private int id; @NotEmpty(message=...

Global site tag (gtag.js) - Google Analytics