Ich habe eine grundlegende SpringBoot App. Verwenden von Spring Initializer, eingebetteter Tomcat-, Thymeleaf-Vorlagen-Engine und Paket als ausführbare JAR-Datei.Spring Boot - MockMVC forwardedUrl mit Thymoleaf
Ich habe diesen Controller:
@Controller
@RequestMapping("/deviceevent")
public class DeviceEventController {
@RequestMapping(value={ "/list"}, method = { RequestMethod.GET})
public String deviceeventList() {
return "tdk/deviceEvent/DeviceEventList";
}
}
und diese anderen Testklasse. Tests mit dem MockMVC-Framework von Spring. Dies treibt eine MVC-Anwendung in einem Test, als ob es in einem Container ausgeführt wird,
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@WebMvcTest
public class MockMvcTests {
// Pull in the application context created by @ContextConfiguration
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup() {
// Setup MockMVC to use our Spring Configuration
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
@Test
public void getDeviceEventsTest() throws Exception {
this.mockMvc
.perform(get("/deviceevent/list") //
.accept(MediaType.parseMediaType("text/html;charset=UTF-8")))
.andExpect(status().isOk()) //
.andExpect(model().size(1)) //
.andExpect(forwardedUrl("tdk/deviceEvent/DeviceEventList"));
}
Aber ich habe diesen Fehler in der URL weitergeleitet. Früher habe ich immer diese Methode in JSP, nie in Thymeleaf, aber ich denke, dass es das gleiche ist:
java.lang.AssertionError: Forwarded URL expected:</tdk/deviceEvent/DeviceEventList> but was:<null>
können Sie mit Ihrem HTML-Code bieten, fiel ich, dass beim Übergeben von Objekt erhalten Sie null Wert –