Java 测试bean实例化是否引发异常

Java 测试bean实例化是否引发异常,java,spring,unit-testing,spring-boot,Java,Spring,Unit Testing,Spring Boot,当提供某些特定属性时,如何测试Springbean是否抛出异常 我尝试使用AutowireCapableBeanFactory,但是Bean实例化的异常在任何测试方法运行之前抛出 @RunWith(SpringRunner.class) @春靴测试( 属性={ //这些属性将导致getMyService中出现异常 }, classes={MySpringBootApp.class} ) 公共类TestBeanInitThrowsException{ @自动连线 私人自动布线beanFactory

当提供某些特定属性时,如何测试Springbean是否抛出异常

我尝试使用AutowireCapableBeanFactory,但是Bean实例化的异常在任何测试方法运行之前抛出

@RunWith(SpringRunner.class)
@春靴测试(
属性={
//这些属性将导致getMyService中出现异常
},
classes={MySpringBootApp.class}
)
公共类TestBeanInitThrowsException{
@自动连线
私人自动布线beanFactory beanFactory;
@试验
公共void test1(){
this.beanFactory.createBean(需要myService.class的其他服务);
}
}
@配置
公共类MyConf{
@值(“${xyz}”)
私有资源xyz;
@Bean公共MyService getMyService(OtherBean){
//使用xyz创建MyService
//可以抛出异常
}
}

您可以对配置类进行单元测试

@RunWith(MockitoJunitRunner.class)
class ConfTest {
    @InjectMocks MyConf sut;
    @Mock Resource xyz;

    @Test(expected = InvalidParameterException.class)
    public void testInvalidResourceThrowsException() {
        when(xyz.mappedName()).thenReturn("invalid"); // or something
        OtherBean param = mock(OtherBean.class);

        sut.getMyService(param);
    }
}

谢谢,我不知道你可以这样嘲笑和注入资源。