Как избежать исключения «круговой путь» с помощью теста Spring MVC

У меня есть следующий код в одном из моих контроллеров:

@Controller
@RequestMapping("/preference")
public class PreferenceController {

    @RequestMapping(method = RequestMethod.GET, produces = "text/html")
    public String preference() {
        return "preference";
    }
}

Я просто пытаюсь проверить это с помощьюВесенний тест MVC следующее:

@ContextConfiguration
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
public class PreferenceControllerTest {

    @Autowired
    private WebApplicationContext ctx;

    private MockMvc mockMvc;
    @Before
    public void setup() {
        mockMvc = webAppContextSetup(ctx).build();
    }

    @Test
    public void circularViewPathIssue() throws Exception {
        mockMvc.perform(get("/preference"))
               .andDo(print());
    }
}

Я получаю следующее исключение:

Путь к циклическому представлению [предпочтение]: снова отправит обратно к текущему URL обработчика [/ предпочтение]. Проверьте настройки ViewResolver! (Подсказка: это может быть результатом неуказанного представления из-за генерации имени представления по умолчанию.)

Что я нахожу странным, так это то, чтоон работает нормально, когда я загружаю «полную» конфигурацию контекста это включает шаблон и решатели представления, как показано ниже:

<bean class="org.thymeleaf.templateresolver.ServletContextTemplateResolver" id="webTemplateResolver">
    <property name="prefix" value="WEB-INF/web-templates/" />
    <property name="suffix" value=".html" />
    <property name="templateMode" value="HTML5" />
    <property name="characterEncoding" value="UTF-8" />
    <property name="order" value="2" />
    <property name="cacheable" value="false" />
</bean>

Мне хорошо известно, что префикс, добавленный распознавателем шаблонов, гарантирует отсутствие «кругового пути просмотра», когда приложение использует этот распознаватель шаблонов.

Но тогда как я должен проверить свое приложение, используя Spring MVC test? У кого-нибудь есть какие-либо подсказки?

Ответы на вопрос(14)

Ваш ответ на вопрос