与注释类限定符创建@MockBean?

问题描述 投票:1回答:2

在我的春天开机测试我使用2种不同预选赛模拟豆类:

@RunWith(SpringRunner.class)
@SpringBootTest
class HohoTest {
    @MockBean @Qualifier("haha") IHaha ahaha;
    @MockBean @Qualifier("hoho") IHaha ohoho;
}

因为我没有使用这些豆子明确,我宁愿将它们移动远离类机构,作为@MockBean注释现在是重复的:

@RunWith(SpringRunner.class)
@SpringBootTest
@MockBean(IHaha.class)
@MockBean(IHaha.class)
class HohoTest {}

不过,我需要在一个限定通过为好,因为它们具有相同的类型。我如何能做到这一点任何想法?

java spring-boot spring-test spring-bean
2个回答
1
投票

当在类级别声明@MockBean,目前提供一个限定词的支持。

如果你想有这样的支持,我建议你request it in the Spring Boot issue tracker

否则,你将需要继续沿着@MockBean领域宣布@Qualifier


1
投票

如果它是好的,完全移动模拟定义了测试类的,你也可以创建一个单独的@Configuration类的嘲笑:

@Configuration
public class MockConfiguration
{
    @Bean @Qualifier("haha")
    public IHaha ahaha() {
        return Mockito.mock(IHaha.class);
    }
    @Bean @Qualifier("hoho")
    public IHaha ohoho() {
        return Mockito.mock(IHaha.class);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.