maven依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> <version>2.0.1.RELEASE</version> </dependency>
BaseController
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class BaseControllerTest { protected WebTestClient rest; @LocalServerPort private int port = 8103; /** * Class执行之前先备份数据库 */ // @BeforeClass // public static void backupDataBase() { // try { // MysqlTool.backup("127.0.0.1", "root", "123456", "F:/test/upload/amoour_site", "mur_db.sql", "amoour_site"); // } catch (InterruptedException e) { // e.printStackTrace(); // } // } /** * Class执行完后还原数据库到执行之前 */ @AfterClass public static void restoreDataBase() { try { MysqlTool.restore("127.0.0.1", "root", "123456", "F:/test/upload/amoour_site", "mur_db.sql", "amoour_site"); } catch (InterruptedException e) { e.printStackTrace(); } } @Before public void setUp() { this.rest = WebTestClient.bindToServer().responseTimeout(Duration.ofSeconds(10)) .baseUrl("http://localhost:" + this.port) .defaultHeader("signature", "8f9238516f1ffb26986b4aa51692710492b87fbf9589cc70ef37ab5616cfa23d") .defaultHeader("timestamp", "1525687385086") .defaultHeader("user-id", "3ee73f38497a498e93a7fee6badb298b") .defaultHeader("user-name", "root") .build(); } // ============== TOOL METHODS =============== public String randomFile() { return "73c733cde2e4edd9b4d2cd1af82ec97"; } protected void isResponseOk(WebTestClient.ResponseSpec response) { response.expectBody(String.class) .consumeWith(e -> Assert.assertTrue( "200".equals(JsonUtil.readTree(e.getResponseBody()).get("code").asText()))); } }
其他测试类继承该测试类
@Slf4j public class CmsRecruit extends BaseControllerTest{ private static final String BASE = "/cms/recruit/"; private static final String LIST_RECRUIT = BASE+"list"; private static final String DETAIL_RECRUIT = BASE+"detail"; private static final String UPDATE_RECRUIT = BASE+"update"; private static final String DELETE_RECRUIT = BASE+"delete"; private static final String CREATE_RECRUIT = BASE+"create"; @Test public void listRecruit() { isResponseOk(rest.get().uri(LIST_RECRUIT) .exchange().expectStatus().isOk()); } @Test public void selectRecruit() { String url = DETAIL_RECRUIT+"?id=01a5e46aa7034aa3956e55135a62f4ee"; isResponseOk(rest.get().uri(url) .exchange().expectStatus().isOk()); } @Test public void updateRecruit() { isResponseOk(rest.post().uri(UPDATE_RECRUIT) .body(BodyInserters.fromFormData("id", "01a5e46aa7034aa3956e55135a62f4ee") .with("title","123") .with("summary","123") .with("description","213") .with("requirement","123")) .exchange().expectStatus().isOk()); } @Test public void deleteRecruit() { String url = DELETE_RECRUIT+"?id=01a5e46aa7034aa3956e55135a62f4ee"; isResponseOk(rest.delete().uri(url) .exchange().expectStatus().isOk()); } @Test public void createRecruit() { isResponseOk(rest.post().uri(CREATE_RECRUIT) .body(BodyInserters.fromFormData("title", "123") .with("summary","123") .with("description","213") .with("requirement","123")) .exchange().expectStatus().isOk()); } }