标签: springockito

@ReplaceWithMock和@Qualifier

我正在springockito-annotations 1.0.9用于集成测试.

我有以下控制器:

@Autowired
    public Controller(
            @Qualifier("passwordService ") PasswordService passwordService ,
            @Qualifier("validator") Validator validator,
            @Qualifier("reportService") ReportService reportService,
            DateCalculator dateCalculator,
            Accessor accessor){
        this.passwordService = passwordService;
        this.validator = validator;
        this.reportService = reportService;
        this.dateCalculator = dateCalculator;
        this.accessor = accessor;
    }
Run Code Online (Sandbox Code Playgroud)

在测试中,我将使用@ReplaceWithMock注释从上下文中替换bean .

但不幸的是,它仅适用于没有@Qualifier注释的依赖项.

也就是说,我的测试看起来像这样:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(loader = SpringockitoAnnotatedContextLoader.class, classes = {TestContext.class})
public class ControllerTest {

    @Autowired
    @ReplaceWithMock
    private PasswordService passwordService ;
    @Autowired
    @ReplaceWithMock
    private Validator validator;
    @Autowired
    @ReplaceWithMock
    private ReportService reportService;
    @Autowired
    @ReplaceWithMock
    private DateCalculator dateCalculator; …
Run Code Online (Sandbox Code Playgroud)

java integration-testing unit-testing spring-mvc springockito

7
推荐指数
1
解决办法
4040
查看次数