我的一個控制器中有以下代碼:@Controller@RequestMapping("/preference")public class PreferenceController { @RequestMapping(method = RequestMethod.GET, produces = "text/html") public String preference() { return "preference"; }}我只是想使用Spring 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()); }}我收到以下異常:循環視圖路徑[preference]:將再次分派回當前處理程序URL [/ preference]。檢查您的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測試來測試我的應用程序呢?有人知道嗎?
3 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
我通過使用@ResponseBody解決了這個問題,如下所示:
@RequestMapping(value = "/resturl", method = RequestMethod.GET, produces = {"application/json"})
@ResponseStatus(HttpStatus.OK)
@Transactional(value = "jpaTransactionManager")
public @ResponseBody List<DomainObject> findByResourceID(@PathParam("resourceID") String resourceID) {
- 3 回答
- 0 關注
- 1062 瀏覽
添加回答
舉報
0/150
提交
取消