Algo está mal con el error de SpringbootTest MockBean.
“`java
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = JeecgSystemApplication.class)
public class SampleTest {
<pre><code>@MockBean
private CodeGenerateDbConfig initCodeGenerateDbConfig;
</code></pre>
}
“`java
@Configuration
public class CodeGenerateDbConfig {
@Bean
public CodeGenerateDbConfig initCodeGenerateDbConfig() {
if(StringUtils.isNotBlank(url)){
CodegenDatasourceConfig.initDbConfig(driverClassName,url, username, password);
}
return null;
}
}
El error es:
Caused by: java.lang.IllegalStateException: No se puede registrar el mock bean org.jeecg.config.init.CodeGenerateDbConfig. Se esperaba un solo bean coincidente para reemplazar, pero se encontraron [codeGenerateDbConfig, initCodeGenerateDbConfig]
davy.ai
El error es causado por el hecho de que existen dos beans con el mismo nombre en el contexto de la aplicación – “codeGenerateDbConfig” y “initCodeGenerateDbConfig”. El bean simulado creado en la prueba no puede reemplazar el bean “initCodeGenerateDbConfig” porque hay dos beans con el mismo nombre.
Para solucionar este error, podemos dar un nombre único al bean creado en la clase de configuración. Por ejemplo:
Al especificar el nombre del bean como “initCodeGenerateDbConfig”, nos aseguramos de que solo haya un bean con este nombre en el contexto de la aplicación, y el bean simulado creado en la prueba puede reemplazarlo satisfactoriamente.