代码如上,我想通过前端调用 openMianAccount()方法的时候,能把 @Before 的方法也执行了。
但是本人百度能力弱,没有找到~ 请教下
有没有懂得大佬
告诉我百度关键字也行
@Before 的识别是 junit 执行器自己识别的。
要不你手动重新实现一个执行器,自动根据注解判定
要不你通过调用 junit 执行器提供的方法来执行指定用例,而非直接调用类里面的方法
对于第二种方法,百度关键字 函数调用 junit
也可以找到,参考结果:https://blog.csdn.net/haorenmin2008/article/details/44491331
new JUnitCore().run(Request.method(ATest.class, "测试功能1"));
。@Component
public class CommonInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// TODO 你的验证逻辑
System.out.println(request.getRequestURI());
HandlerMethod handlerMethod = (HandlerMethod)handler;
System.out.println(handlerMethod.getMethod().getName());
return false;
}
}
@Configuration
public class CommonWebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
WebMvcConfigurer.super.addInterceptors(registry);
registry.addInterceptor(new CommonInterceptor());
}
}
感谢大佬,能达到预期效果。
只不过要想个办法解决前端传参问题~
控制器方法代码:
@ResponseBody
@RequestMapping("/demoJunit")
public String demoJunit(){
new DemoRun().demoruncase();
return "执行成功";
}
控制器方法调用的方法
```java
public class DemoRun {
public void demoruncase(){
new Thread(){
public void run(){
new JUnitCore().run(Request.method(demoCase.class,"openMianAccount"));
}
}.start();
}
public static void main(String[] args) {
new DemoRun().demoruncase();
}
}
实际执行代码:
```java
public class demoCase {
@Before
public void login(){
openUrl();
LoginBusiness.login("HSG013","123456");
}
//定期
@Test
public void openMianAccount(){
openPage("0125300");
String s = new Business0125300().openMainAccount("851000000868");
//案例执行完重置打开窗口数
resetIframeNum();
}
}