Test that a broken factory bean does not break resetting of mocks
Previously, ResetMocksTestExecutionListener used getBean(name) to retrieve each instantiated singleton. When the instantiated singleton was a factory bean, this would cause getObject on the factory bean to be called. If the factory bean was unable to produce its object, for example due to test slicing excluding something, an exception would be thrown. The previous commit updated ResetMocksTestsExecutionListener to use getSingleton(name) rather than getBean(name). This will retrieve the factory bean itself rather than causing the factory bean to attempt to create an object. This commit updates the tests to verify the new behaviour. Closes gh-7270
This commit is contained in:
parent
eb927f1b29
commit
46e8cf4a43
|
@ -21,6 +21,7 @@ import org.junit.Test;
|
|||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.MethodSorters;
|
||||
|
||||
import org.springframework.beans.factory.FactoryBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.mock.mockito.example.ExampleService;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
@ -37,6 +38,7 @@ import static org.mockito.Mockito.mock;
|
|||
* Tests for {@link ResetMocksTestExecutionListener}.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||
|
@ -94,6 +96,31 @@ public class ResetMocksTestExecutionListenerTests {
|
|||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public BrokenFactoryBean brokenFactoryBean() {
|
||||
// gh-7270
|
||||
return new BrokenFactoryBean();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class BrokenFactoryBean implements FactoryBean<String> {
|
||||
|
||||
@Override
|
||||
public String getObject() throws Exception {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?> getObjectType() {
|
||||
return String.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSingleton() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue