gpt4 book ai didi

java - 我可以使用 @MockBean 在我的测试类的一种方法中模拟 bean 吗?

转载 作者:行者123 更新时间:2023-12-04 11:33:44 26 4
gpt4 key购买 nike

我有这个 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 相同吗?为 UserBO ? ( PermissionBO 不会被 UserBO 重新调整,而是在被测类中与 UserBO 相同的级别上使用。)
@Test(expects=IllegalStatusException.class)
public void testErrorHandlingBranch() {
// How can I mock the bean *PermissionsBO* only for this test?
// like @MockBean PermissionsBO permissionsBO;
// Is there a method like injectMockBean(PermissionsBO.class)?
mockMvc.perform(...)
}

最佳答案

您应该使用 thenReturn()在您的测试方法中,以仅在特定测试中使用特定模拟值的方式。
例如:Mockito.when(userBO.example()).thenReturn("Specific test method mock");

关于java - 我可以使用 @MockBean 在我的测试类的一种方法中模拟 bean 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63371082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com