我有一门课:
@Component
public class ContractorFormValidator implements Validator {
Logger logger = LoggerFactory.getLogger(ContractorFormValidator.class);
@Inject IBusinessDataValidator businessDataValidator;
@Override
public boolean supports(Class<?> clazz) {
return Contractor.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
Contractor contractor = (Contractor) target;
if (!businessDataValidator.isNipValid(contractor.getContractorData().getNip())) {
errors.rejectValue("contractorData.nip", "invalid");
}
if (!businessDataValidator.isRegonValid(contractor.getContractorData().getRegon())) {
errors.rejectValue("contractorData.regon", "invalid");
}
}
}
如何测试它?我试过这样做:如何使用JUnit测试类的验证注释?但这不起作用,因为我的验证器中的validate方法需要传递给它的方法签名的类。
我不知道是否可以将此错误传递给验证器。还有别的办法吗?
使用类org。springframework。验证。BeanPropertyBindingResult,
Errors newErrors = new BeanPropertyBindingResult(validateObject, "objectName");
您是否尝试过为此编写一个简单的单元测试?
@RunWith(SpringJUnit4ClassRunner.class)
public class ContractorFormValidatorTest {
@Autowired
private ContractorFormValidator validator;
@Test
public void testValidation() throws Exception {
Contractor contractor = new Contractor();
// Initialise the variables here.
Errors errors = new BeanPropertyBindingResult(contractor, "contractor");
validator.validate(contract, errors);
// If errors are expected.
Assert.assertTrue(errors.hasErrors());
for (Error fieldError : errors.getFieldErrors()) {
Assert.assertEquals("contractorData.nip", fieldError.getCode());
}
}
}
如果要在控制器实现中使用验证器,那么需要使用MockMvc API
您的设置可以包含在上面的类中。
private MockMvc mockMvc
@Autowired
private MyController controller;
@Before
public void setUp() throws Exception {
this.mockMvc = MockMvcBuilders.standaloneSetup(this.controller).build();
}
@Test
public void testMethod() {
MvcResult result = this.mockMvc.perform(MockMvcRequestBuilders.post("/yoururl")).
andExpect(MockMvcResultMatchers.status().isCreated()).andReturn();
}
在Spring Boot项目中,我们启用了Spring Security性,并使用承载令牌应用了KeyClope身份验证,如以下文章所述: https://www.keycloak.org/docs/3.2/securing_apps/topics/oidc/java/spring-security-adapter.html https://www.keycloak.org/docs/3.2/se
我有一个iOS应用程序,实现了与CognitoYourUserPoolsSample非常相似的Cognito身份验证。最重要的片段在SignInViewController.swift中: > 后来,我们得到成功或错误的响应: 我也有一个用户界面测试,它填充用户名和密码,点击登录并验证响应: 目前,该测试针对的是实际的AWS基础设施,由于许多原因,该基础设施并不理想。我想要的是模拟来自AWS的各种
我想在intellij Idea中以调试模式启动spring-boot maven应用程序,但当我创建断点时,应用程序不会挂起,而是会继续。我读了很多题目,但还是不明白怎么做。你能帮我决定最好的行动方案吗。 但是当请求LocalHost:5005/MyPage时,我会出现错误101(NET::ERR_CONNECTION_RESET)。似乎有些maven参数没有指定。 下面是我在pom.xml中的
集成测试: 当我偶尔运行这个测试时,一切都很好,但是当我和其他测试一起运行它时,没有使用模拟的ServerThroughRabbitMQ,所以一些spring缓存强制使用旧的rabbit侦听器。 我试图调试它,我可以看到,正确的bean被autowired到测试中,但由于某些原因旧监听器使用(旧bean字段instanceID=1新mocked bean instanceID=3),测试失败(不确
我正在使用Spring引导应用程序连接MongoDB实例。我们已在MongoDB上启用了以下角色的身份验证 角色:[ { role: "dbOwner ",db: "{{ mongo.database_name }}" } 角色:[ { role: "readWrite ",db: "{{ mongo.database_name }}" } 我们使用conf文件提供凭证 数据: mongodb。u