我可以仅使用测试类的一种方法使用@MockBean来模拟Bean吗?

问题描述

我有这个mvc测试课程

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest {

    private MockMvc mockMvc;

    @Resource
    private WebApplicationContext webApplicationContext;

    @MockBean
    private UserBO userBO;

    @Before
    public void init() {
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
// ...
    }
// ...

在一个测试用例中,我需要模拟另一个bean来覆盖一个特殊的错误处理分支。这可能吗?我是否可以使用与@MockBean的{​​{1}}相同的任何方法?({{1}不会被UserBO重新调整,而是在同一级别上使用就像PermissionBO在被测类中。)

UserBO

解决方法

您应该在测试方法中使用thenReturn(),以便仅在特定测试中使用特定的模拟值。

例如: Mockito.when(userBO.example()).thenReturn("Specific test method mock");

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...