Как смоделировать аргументы, передаваемые в Spring MVC Controller - PullRequest
0 голосов
/ 21 октября 2018

Обновление

Впрыск LdapService не работает должным образом.Spring создает новые экземпляры, но объект не участвует в обычном жизненном цикле DI управляемого компонента.Например, метод @PostConstruct или @Value аннотации в LdapService действительно вызывают / вводятся.Поэтому я предполагаю, что Spring просто создает экземпляры в терминах модельного компонента, но не в смысле управляемого компонента.

Таким образом, весь вопрос о насмешках над этим объектом устарел.

Конец обновления

Как я могу смоделировать службу, передаваемую в качестве аргумента контроллеру Spring MVC?

Служба, которая должна быть смоделирована.Это с областью «прототип», что важно в моем сценарии:

@Service
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class LdapService {
    ...
}

Spring MVC Controller:

@RestController
public class SomeController {
    @GetMapping("/something")
    public ResponseEntity<Void> doSomething(
            @Valid @RequestBody SomeDTO someDTO,
            @Autowired LdapService ldapService) {
        ldapService.invokeSomeMethod(someDTO.getName());
        return ResponseEntity.ok().build();
    }
}

Тест:

@RunWith(SpringRunner.class)
@WebMvcTest(PasswordController.class)
public class SomeControllerTest {
    @Autowired
    private MockMvc mockMvc;

    @Test
    public void doSomeTest() throws Exception {
        // In the following call, a mocked LdapService shall be used!
        mockMvc.perform(get("/something"));

Как я могумакет LdapService в этом примере?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...