spring - 如何在 Spring 4.1.7 中将模拟注入自定义 ConstraintValidator?
问题描述
我正在使用 Spring 4.1.7 开发应用程序,并且正在使用带有独立上下文配置的 mockMvc 执行一些单元测试。我想测试提交表单的控制器方法。
问题是表单中的某些字段使用自定义验证注释进行注释,并且负责验证的 ConstraintValidator 需要我想模拟的其他依赖项。我该怎么做?
验证器的代码如下:
public class EmailValidator implements ConstraintValidator<CorrectEmail, Object> {
@Autowired
private ConfigurationManager configurationManager;
@Override
public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
String pattern = configurationManager.getPattern();
//performing checks
}
}
测试代码如下:
@UnitTest
@RunWith(MockitoJUnitRunner.class)
public class RegisterPageControllerUnitTest {
private MockMvc mockMvc;
@InjectMocks
private Controller controller;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void sdlkjf() throws Exception {
mockMvc.perform(post("/register")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.param("email", "email@gmail.com"));
}
}
当我尝试运行我的测试时,我得到了NullPointerException
因为configurationManager
没有注入。
解决方案
推荐阅读
- javascript - 在vue中路由到另一个页面时如何传递道具
- python - 删除重复项时稀疏数据变为 NaN
- javascript - Vanilla Javascript:如何使按钮只能点击一次
- ssis - 将 DATETIME(日期时间)转换为季度(整数)SSIS
- math - 简化布尔表达式 (A && B) || (A && !B && C)
- android - android - RecyclerView 和 OnItemClick:没有为参数“listener”传递值
- python - 从 MySQL python 填充字典
- r - 使用带有外部参数的 group_by 和 slice
- python - 如何在python二进制搜索中获取树的长度
- react-native - 当 useEffect 中没有 fetch 时,取消 axios 请求