我使用MapStruct生成的一个映射器:
@Mapper
public interface CustomerMapper {
Customer mapBankCustomerToCustomer(BankCustomerData bankCustomer);
}
默认组件模型是spring(在pom.xml中设置)
<compilerArg>-Amapstruct.defaultComponentModel=spring</compilerArg>
我有一个服务,我在其中注入客户映射器并在运行应用程序时正常工作
@Autowired
private CustomerMapper customerMapper;
但是当我运行涉及@SpringBootTest
的单元测试时@SpringBootTest
@AutoConfigureMockMvc
@RunWith(SpringRunner.class)
public class SomeControllerTest {
@Mock
private SomeDependency someDependency;
@InjectMocks
private SomeController someController;
@Test
public void shouldDoSomething() {
...
}
}
我得到一个org.springframework.beans.factory.UnsatisfiedDependencyException
通过字段&#39; customerMapper&#39;
表达的不满意的依赖关系
答案 0 :(得分:1)
我遵循了这个answer,我的问题在我在build.gradle文件中粘贴建议的行时得到了解决
答案 1 :(得分:0)
当您通过IDE运行测试时,有两种可能性:
为了排除各种可能性,请对每种方法进行以下操作:
@Mapper(componentModel = "spring")
。我个人更喜欢这个选项,因为你独立于IDE。您还可以使用可以应用的@MapperConfig
mapstruct.defaultComponentModel
作为选项名称,spring
作为值。我不知道如何为Eclipse做这件事