joh*_*col 5 spring unit-testing dependency-injection mapstruct
我正在使用 MapStruct 生成的一个映射器:
@Mapper
public interface CustomerMapper {
Customer mapBankCustomerToCustomer(BankCustomerData bankCustomer);
}
Run Code Online (Sandbox Code Playgroud)
默认组件模型是spring(在pom.xml中设置)
<compilerArg>-Amapstruct.defaultComponentModel=spring</compilerArg>
Run Code Online (Sandbox Code Playgroud)
我有一个服务,我在其中注入了客户映射器,并且在运行应用程序时工作正常
@Autowired
private CustomerMapper customerMapper;
Run Code Online (Sandbox Code Playgroud)
但是当我运行涉及@SpringBootTest 的单元测试时
@SpringBootTest
@AutoConfigureMockMvc
@RunWith(SpringRunner.class)
public class SomeControllerTest {
@Mock
private SomeDependency someDependency;
@InjectMocks
private SomeController someController;
@Test
public void shouldDoSomething() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个 org.springframework.beans.factory.UnsatisfiedDependencyException
通过字段“customerMapper”表达的不满意依赖
当您通过 IDE 运行测试时,有两种可能性:
要排除这些可能性,请对每种情况执行以下操作:
@Mapper(componentModel = "spring")。我个人更喜欢这个选项,因为你是独立于 IDE 的。您还可以使用@MapperConfig可以申请的mapstruct.defaultComponentModel选项名称和spring值。我不知道如何为 Eclipse 做到这一点| 归档时间: |
|
| 查看次数: |
7662 次 |
| 最近记录: |