有没有类似lombok@allargconstructor的@mockbeans?

zsohkypk  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(345)

我在java项目中使用projectlombok。
我的控制器如下所示:

@RestController
@AllArgsConstructor
public class UserController {

    private RegisterService registerService;
    private UserService userService;
    private UserValidator userValidator;
    private LoginService loginService;
    /*
     * rest of the controller
     */
}

因此控制器必须如下所示:

@WebMvcTest(UserController.class)
public class UserControllerTest {

    @MockBean
    private UserRepository userRepository;

    @MockBean
    private RegisterService registerService;

    @MockBean 
    private UserService userService;

    @MockBean
    private LoginService loginService;

    @MockBean
    private UserValidator UserValidator;

    /*
     * rest of the contoller test
     */
}

为了减少编程中的代码猴子,有没有像@allmockargconstructor这样的东西?
或者,我不必总是添加所有服务?
如果这是个愚蠢的问题,请告诉我为什么。
提前谢谢!

ssm49v7z

ssm49v7z1#

不幸的是,这是做不到的, @MockBeans 注解目标仅应用于字段和类型,而不应用于方法,您可以在此处阅读更多关于它的信息。
如果 @MockBeans 能够支持的方法,然后可以这样做:

@Getter(onMethod_={@MockBean} )
@WebMvcTest(UserController.class)
public class UserControllerTest {
   ...
}

相关问题