diff --git a/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideRegistrar.java b/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideRegistrar.java index d9f749a4b4..098bff4bb6 100644 --- a/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideRegistrar.java +++ b/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideRegistrar.java @@ -89,14 +89,8 @@ class BeanOverrideRegistrar { private void inject(Field field, Object target, String beanName) { try { - ReflectionUtils.makeAccessible(field); - Object existingValue = ReflectionUtils.getField(field, target); Object bean = this.beanFactory.getBean(beanName, field.getType()); - if (existingValue == bean) { - return; - } - Assert.state(existingValue == null, () -> "The existing value '" + existingValue + - "' of field '" + field + "' is not the same as the new value '" + bean + "'"); + ReflectionUtils.makeAccessible(field); ReflectionUtils.setField(field, target, bean); } catch (Throwable ex) { diff --git a/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideTestExecutionListener.java index 1fba7c75a1..900e288030 100644 --- a/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideTestExecutionListener.java @@ -16,13 +16,11 @@ package org.springframework.test.context.bean.override; -import java.lang.reflect.Field; import java.util.List; import org.springframework.test.context.TestContext; import org.springframework.test.context.support.AbstractTestExecutionListener; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; -import org.springframework.util.ReflectionUtils; /** * {@code TestExecutionListener} that enables {@link BeanOverride @BeanOverride} @@ -50,7 +48,7 @@ public class BeanOverrideTestExecutionListener extends AbstractTestExecutionList */ @Override public void prepareTestInstance(TestContext testContext) throws Exception { - injectFields(testContext, false); + injectFields(testContext); } /** @@ -67,18 +65,15 @@ public class BeanOverrideTestExecutionListener extends AbstractTestExecutionList Object reinjectDependenciesAttribute = testContext.getAttribute( DependencyInjectionTestExecutionListener.REINJECT_DEPENDENCIES_ATTRIBUTE); if (Boolean.TRUE.equals(reinjectDependenciesAttribute)) { - injectFields(testContext, true); + injectFields(testContext); } } /** * Inject each {@link BeanOverride @BeanOverride} field in the test instance with * a corresponding bean override instance. - *
If the {@code reinjectFields} flag is {@code true} (which indicates that
- * a fresh instance is required), the field is nulled out before injecting
- * the overridden bean instance.
*/
- private static void injectFields(TestContext testContext, boolean reinjectFields) {
+ private static void injectFields(TestContext testContext) {
List