Cómo evitar la excepción "Ruta de vista circular" con la prueba Spring MVC

Tengo el siguiente código en uno de mis controladores:

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

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

Simplemente estoy tratando de probarlo usandoPrueba de primavera MVC como sigue:

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

Estoy recibiendo la siguiente excepción:

Ruta de la vista circular [preferencia]: se enviaría nuevamente a la URL del controlador actual [/ preferencia] nuevamente. ¡Compruebe su configuración de ViewResolver! (Sugerencia: esto puede ser el resultado de una vista no especificada, debido a la generación de nombre de vista predeterminada.)

Lo que me parece extraño es quefunciona bien cuando carga la configuración de contexto "completa" que incluye la plantilla y la resolución de vistas como se muestra a continuación:

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

Soy consciente de que el prefijo agregado por la resolución de plantillas garantiza que no haya una "ruta de vista circular" cuando la aplicación utiliza esta resolución de plantillas.

Pero entonces, ¿cómo se supone que debo probar mi aplicación utilizando la prueba Spring MVC? ¿Alguien tiene alguna pista?

Respuestas a la pregunta(14)

Su respuesta a la pregunta