webflux编写测试类

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值