以2020.3.1为例
选择spring?initializr->next
java?version选择8
前面的Artifact可以随便起名
?
然后next
选择web->spring web
其他的可以考虑不选,其实就算都不选,一会也可以在maven的pom.xml配置
然后next
直接Finish
在src/main/java/com.example.demo下建一个类
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String index() {
return "测试";
}
}
修改test/java/com.example.demo下的类?
记住这个accept(MediaType.APPLICATION_JSON_UTF8)
如果这个没写,而且你返回中文的话,很有可能测试过不了
package com.example.demo;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
private MockMvc mvc;
public DemoApplicationTests() {
}
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("测试")));
}
}
?然后会有红的
然后点一下Test,alt+enter,add?maven?dependency?,选org.junit那个(第二个)
然后点一下这个开始按钮,应该会显示测试通过?
然后这个选择最底下那个Application,然后右上角,运行
?
底下控制台会输出这些?
?
打开浏览器,输出http://localhost:8080/hello
可以看到输出测试
?