我使用Spring MVC
我在控制器中有一个私有字段。该字段的值来自属性文件,如
@Controller
public Class MainController() {
@Value("${my-value}")
private int myValue;
}
我必须重写用于selenium测试的值in。我如何重写这个字段的值,意味着我想设置一个自定义值(这样值就不会从属性文件中获取)?
可以这样吗,
ReflectionTestUtils.setField(MainController.class, "myValue", 3, Integer.class);
您应该将此代码放入控制器测试方法中。
@WebMvcTest(controllers = MainController.class, useDefaultFilters = false)
@Import({MainController.class})
public void MainControllerTest{
@Autowired
private MainController mainController
@Test
should_set_controller_private_field(){
ReflectionTestUtils.setField(mainController, "myValue", 3)
assertEquals(ReflectionTestUtils.getField(
mainController, "myValue"), 3)
}
}