junit - mapstruct 对象的 Junit 测试
问题描述
我创建了一个单元测试,其中我有一个PersonMapper
使用PetMapper
and WorkMapper
,最后,在我的代码中,我使用 mapstrcut 生成的类而不是我创建的接口。
下面的代码代表我的单元测试:
@SpringBootTest(classes = {PersonMapperImpl.class, PetMapperImpl.class, WorkMapperImpl.class})
public class PersonMapperTest {
@Autowired private PersonMapperImpl personMapperImpl;
@Test
...
}
我的问题是,我希望使用接口,但是在这个单元测试中,我直接放置了 mapstruct 生成的类。这是测试 mapstruct 对象的好方法吗?
解决方案
将 MapStruct 与 Spring 一起使用时,映射器应该具有@Mapper(componentModel = "spring")
. 这将创建将用 注释的实现类@Component
。为了能够在测试中使用接口,您需要对映射器的包进行组件扫描。
推荐阅读
- ruby-on-rails - 带有加号或 - 号的枚举不适用于 ActiveRecord
- python - 在包结构中排列代码时,Flask SQLAlchemy 抛出“NoReferencedTableError”
- java - JAVA 我在方法中使用 JButton[] 数组来添加多个按钮 - 方法在类构造函数中有效,但在用作按下按钮操作时无效
- tensorflow - TensorFlow 模型比文档中的慢
- java - 网关错误/本机内存分配 (mmap) 未能映射 x 字节
- python - 如何忽略迁移但 __init_.py?
- python - 如何将 Kaggle 数据集加载到英特尔 DevCloud Jupyter Notebook
- google-cloud-firestore - 根据我的应用程序架构,是什么导致了意外数量的 Firestore 读取?
- jenkins - 无法确定 withEnv 在 Jenkinsfile 中做了什么
- c# - 如何使用回调更新页面上的元素?