我有Spring Boot单元测试(用@SpringBootTest注释的类),在使用我的IDE时运行良好。当我使用Maven(mvn测试)运行它们时,它们都因相同的原因而失败:
原因:组织。springframework。豆。工厂BeanCreationException:创建名为“entityManagerFactory”的bean时出错,该bean在类路径资源[my/package/config/DatasourceConfiguration.class]中定义:调用init方法失败;嵌套异常为org。冬眠AnnotationException:无法实例化AttributeConverter[my.package.enum.AbstractEnumConverter],原因是:org。冬眠AnnotationException:无法实例化AttributeConverter[my.package.enum.AbstractEnumConverter],原因是:java。lang.NoSuchMethodException:我的。包裹AbstractEnumConverter。
我使用一个通用的AbstractEnumConverter来转换实体上的枚举。看起来是这样的:
@Converter
public abstract class AbstractEnumConverter<T extends Enum<T> & EnumInterface<E>, E> implements AttributeConverter<T, E> {
private static Logger logger = LoggerFactory.getLogger(AbstractEnumConverter.class);
private final Class<T> clazz;
public AbstractEnumConverter(Class<T> clazz) {
this.clazz = clazz;
}
@Override
public E convertToDatabaseColumn(T attribute) {
return attribute != null ? attribute.getKey() : null;
}
@Override
public T convertToEntityAttribute(E dbData) {
if (dbData == null)
return null;
T[] enums = clazz.getEnumConstants();
for (T e : enums) {
if (e.getKey().equals(dbData))
return e;
}
logger.info("Could not find value {} for class {}",dbData,clazz.getName());
return null;
}
}
下面是我使用的枚举示例:
public enum ExampleEnum implements EnumInterface<Integer> {
KEY(1);
private final Integer key;
ExampleEnum(Integer key) {
this.key = key;
}
@Override
public Integer getKey() {
return key;
}
public static class Converter extends AbstractEnumConverter<ExampleEnum, Integer> {
public Converter() {
super(ExampleEnum.class);
}
}
}
似乎maven试图实例化我的AbstractEnumConverter类,原因我不知道。在IDE单元测试和运行应用程序时,一切正常。
Hibernate将@Converter
注释解释为它应该实例化您的类并注册它,但它是一个没有默认构造函数的抽象类(您缺少的
我正在尝试测试以下控制器: 下面是测试类: 当我运行测试失败,并给我以下消息: 当我测试的url正常工作。
我有一个带有Java配置类的Spring(4.2.5)项目。这些在正常运行项目时起作用,但我无法使我的测试工作。在下面的测试中,为空。 如果添加注释,则会出现异常 其中和在和中定义,后者是基于活动配置文件选择的。 [编辑2] 经过更多的搜索,我发现了这个问题,并且在检查了我的依赖项之后,我发现我在maven依赖项下有Spring-Core-4.1.9,而且我没有在我的POM中包含一个依赖项。添加依
我将应用程序中的Spring boot版本从2.4.4升级到2.5.0,它停止公开 /actuator/infoendpoint。这是pom.xml和application.yml pom。xml 应用yml公司 使用spring boot父版本2.4.4,应用程序能够公开信息endpoint,但不能使用2.5.0。
我想在spring boot应用程序中配置日志记录。我已经配置了logback-spring . XML。logback-spring . XML的示例位于此处,application-dev.properties文件的示例位于此处,当我尝试运行spring boot应用程序时,出现以下错误: 如果我替换
我已经为此挣扎了一段时间了。我想使用restAs0007来测试我的SpringBoot REST应用程序。 虽然看起来容器旋转得很好,但请放心(其他任何东西似乎都有问题。 一直以来我都被拒绝连接。 我的测试类: 现在,对于奇怪的部分,传递并打印它应该传递的内容,但是正在获得连接拒绝异常。 知道这个装置有什么问题吗?
单元测试 单元测试例子放到自己开发的模块下。 如果依赖了第三方服务端(例如Zookeeper),请手动加入 profile。参考 registry-zookeeper 模块代码。 如果依赖了其它模块要集成测试,请放到 test/test-intergrated 模块中。 如果还依赖了第三方服务端(例如Zookeeper),请放到 test-intergrated-3rd 模块中。 性能测试 关闭了