Jak uniknąć wyjątku „Circular view path” z testem Spring MVC

W jednym z moich kontrolerów mam następujący kod:

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

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

Po prostu próbuję to przetestowaćWiosenny test MVC następująco:

@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());
    }
}

Otrzymuję następujący wyjątek:

Ścieżka widoku kołowego [preferencja]: ponownie wysłałaby do bieżącego adresu URL obsługi [/ preferencji] ponownie. Sprawdź konfigurację ViewResolver! (Wskazówka: może to wynikać z nieokreślonego widoku z powodu domyślnego generowania nazw widoków).

Dziwne jest to, co widzędziała dobrze po załadowaniu „pełnej” konfiguracji kontekstu który zawiera szablon i przeliczniki widoku, jak pokazano poniżej:

<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>

Doskonale zdaję sobie sprawę z tego, że prefiks dodany przez przelicznik szablonów zapewnia, że ​​nie ma „ścieżki widoku kołowego”, gdy aplikacja korzysta z tego narzędzia do rozpoznawania szablonów.

Ale jak mam przetestować moją aplikację za pomocą testu Spring MVC? Czy ktoś ma jakąś wskazówkę?

questionAnswers(14)

yourAnswerToTheQuestion