在我们做接口测试的时候通常会验证返回的实体类中的空字段。
但是如果一个个字段的
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...
描述中提到,该工具能“在工具中进行解析,方便快捷的看到实体类”,这表明该工具具备自动分析JSON结构并生成对应实体类的能力。这对于接口调试和数据处理至关重要,因为它能减少手动解析和转换的时间,提高开发效率...
这篇文章将深入探讨如何在Java中检查对象是否为`null`或空字符串,并提供一个实用的工具类示例,帮助开发者实现这一功能。 首先,我们来看如何判断一个对象是否为`null`。在Java中,你可以直接使用`==`运算符与`...
压缩包中的文件可能包含了实现上述功能的代码示例,包括配置文件、实体类、控制器和视图部分。通过学习和使用这些代码,你可以更好地理解和掌握如何在实际项目中运用Validator框架进行客户端验证。 总结来说,...
开发者定义实体类(如User),并配置映射文件,使得可以通过对象的方式来操作数据库中的用户记录,如查询、插入和更新。 **MySQL数据库** MySQL是一个高效、稳定且流行的开源关系型数据库。在这个登录系统中,MySQL...
Hibernate是Java领域中广泛应用的对象关系映射(ORM)框架,它提供了一套强大的数据验证工具——Hibernate Validator,这正是"hibernate的校验框架validate"的核心内容。本文将详细介绍Hibernate Validator及其在...
本主题将深入探讨两种常用的验证框架:DataAnnotations和FluentValidation,它们都是用于.NET Core应用程序中的数据验证工具。在这个讨论中,我们将重点关注如何在nopCommerce 4.40这个流行的电子商务平台中应用这些...
1. **内置验证库**:Java提供了一些内置的验证工具,如`java.util.regex.Pattern`类,用于创建正则表达式进行字符串验证。例如,我们可以使用正则表达式验证电子邮件地址、电话号码等格式。 2. **Bean Validation**...
确保实体类的属性与数据库字段一一对应,并正确设置映射关系。 3. **事务管理**:登录验证通常涉及到数据库操作,需要确保这些操作在同一个事务中进行,以保证数据的一致性。 4. **安全问题**:不正确的密码比对可能...
Struts的Validator框架是Java Web开发中用于处理用户输入验证的一种强大的工具,它与MVC架构中的控制器层紧密结合,提供了一种便捷的方式来确保用户提交的数据符合预设的业务规则。这个框架大大简化了数据验证的过程...
在Hibernate中,我们需要定义实体类来映射数据库表,例如User类,包含id、username和password等字段。然后,通过SessionFactory创建Session,使用Session的get或load方法查询数据库,与用户输入的用户名和密码进行...
- 字段级约束直接作用于实体类的字段上,如`@NotNull`。 - 属性级约束则通过getter方法关联,允许更细粒度的控制。 - 类级约束检查整个类的状态,通常用于复杂的业务规则。 2. **验证执行细节**: - 获取`...
- **显示字段:** | 表 | 保持查找 - **字典:表/结构:** Name | 透明 | 成功 - **显示字段:** | 表 | 这意味着,我们需要进一步深入探索以找到实际存储数据的透明表。透明表是存储数据的实体,而视图则由多个...
- **check**:检查,验证数据的约束条件。 - **course**:课程,学习计划的一部分。 - **score**:分数,评价或成绩。 - **foreign**:外键,关联两个表中的记录。 - **binary**:二进制,只有两种状态的数据类型。 ...
- **实体查询**:展示如何查询并返回实体对象。 - **处理关联和集合**:说明如何在原生 SQL 查询中处理关联对象和集合。 - **返回多个实体**:介绍如何在一个查询中返回多个实体类型。 - **返回非管理实体**:解释...
2. 定义验证规则:在模型类(实体类)上使用注解定义验证规则,例如`@NotNull`表示字段不能为空,`@Size(max=10)`表示字段长度不能超过10。 3. 执行验证:在处理用户请求时,调用验证框架提供的方法进行验证,框架会...
在IT行业中,SSH框架是一个非常常见的开发工具,它包含了Spring、Struts和Hibernate这三个核心组件。Spring提供了依赖注入和面向切面编程的能力,Struts处理Web层的请求和响应,而Hibernate则负责对象关系映射,使得...
- 在需要校验的实体类上添加对应的验证注解。 - 创建一个Validator实例,使用`ValidatorFactory`来获取。 - 对对象进行校验,调用`validate()`方法,如果数据不符合规则,会返回一个包含错误信息的`...
标题中的“spring注入web端校验类”指的是在Spring框架中,如何将验证逻辑整合到Web应用程序中,以便对用户输入的数据进行有效性检查。在Web应用中,数据验证是至关重要的,可以防止非法数据进入系统,确保数据的...
在上面的例子中,我们创建了一个`User`实体类,包含`username`和`password`字段。为了进行表单验证,我们在这些字段上添加了相应的注解: ```java public class User { private int id; @NotEmpty(message=...