使用Springboot 2.5.7和捆绑的Junit5(通过spring boot starter测试),我试图通过定制的标准注释测试我在整个bean中设置的约束。
我找到的大多数留档都是关于jit4的,我找不到一种方法让它在springboot5中工作。
另外,我有点困惑,因为在理想情况下,我想测试每个约束的containt,并且只找到关于如何全局测试它的文档(使用junit4)。
有人已经摆弄过这种测试了吗?
只是为了示例,这里我有一个用于入站SQS事件的bean:
package com.application.sqs.dto.inbound;
import com.application.sqs.dto.validators.ZoneDateTime;
import lombok.Data;
import java.util.List;
@Data
public class SqsEvent {
private String version;
private String id;
private String source;
private String account;
@ZoneDateTime(
message = "Wrong time."
)
private String time;
private String region;
private List<String> resources;
private SqsPayload detail;
}
还有一个有效载荷的例子(有很多子对象,经过编辑):
package com.application.sqs.dto.inbound;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.application.sqs.dto.validators.LocalDate;
import lombok.Data;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.List;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class SqsPayload {
@JsonProperty("primkey")
@NotBlank(
message = "primkey is blank"
)
private String primarykey;
@JsonProperty("numb")
@Pattern(
regexp="^(A|B)$",
message = "numb is invalid"
)
private String number;
}
例如,我想测试numb只接受A或B,primkey不能为空,以及我的自定义验证器(@ZoneDateTime)是否按预期工作。
非常感谢您的帮助和指导!
最好的
尚未针对每个约束完成,但以下是两种可能性。
如果通过javax验证器运行该类的实例,那么每个无效约束将得到一个ConstraintViolation。这样,您就可以验证每个约束是否都得到了所有预期的ConstantViolation。
定义一个有效的模拟对象,然后在每个测试用例中,您只需将一个受约束字段的值更改为一个无效的用例,并确保它捕获它
对于编程javax验证,您可以在这里查看步骤5。
还建议您深入了解可用方法的javax.validation.Validator
接口。您还有一个名为validateProperty的方法来针对特定属性。
我目前有以下情况: 我有一个对象,它可以包含多个对象。对象具有属性:
如何处理对象的javascript数组,例如: 并通过求和这些值合并重复的键。为了得到这样的东西: 我尝试过迭代并添加到一个新数组中,但这没有起到作用:
我正在尝试反序列化一个 JSON 响应,其中包含一些标准字段和一个包含子类属性的 嵌套对象,例如: 字段< code>id和< code>type是标准的,所以我有一个基类< code>Base,然后扩展一些更具体的类: 如何让杰克逊读取 对象作为进一步字段值的来源?我假设我需要创建一个自定义反序列化程序,但我不确定如何具体完成此操作。
本文向大家介绍JavaScript变量Dom对象的所有属性,包括了JavaScript变量Dom对象的所有属性的使用技巧和注意事项,需要的朋友参考一下 DOM对象的HTML: <button>Disable State</buttom> 1,遍历DOM对象所具有的属性(全部,不管是否在HTML tag中是否设置) 结果: 2.遍历DOM对象在HTML中设置过的属性: 每一个attribut
因此,通过对Stackoverflow的研究,特别是本主题,我已经确定在一个正常工作的getter/setter设置中嵌入了一个JSON对象字典。当我调用API时,属性的传统getter/setter工作得很好,但这是因为我知道属性的名称。如何使其适用于名为的对象的未知属性,以及该对象的格式是什么()? API响应: 我的POJO: 如何设置getter/setter和正确的字典格式(看起来可能是
我正在努力处理一个简单的RxJs查询,但我似乎无法理解。如果观察对象被包装在一个对象中,我似乎不知道如何合并它们。如果我直接从flatMap返回Observable,那么这个示例可以正常工作,但我还需要在输出中输入名称。我怎样才能做到这一点? 我正在使用RxJS 5.0.0-beta.2 基本数据结构: RxJs函数: 预期结果: 实际结果: