Junit測試

場景: if(dto.a> 0 || dto.b> 0 || dto.c.length>0 || ....) 不少個字段驗證, 分之覆蓋率要達到99%測試

原來是這麼寫的: 一個分支一個測試,分之多了問題就暴露出來了。第一名字難起,第二代碼重複度高,控制變量似的一個個的測試。最近學了一個新方法ui

@ParameterizedTest
    @CsvSource(value =
        {
          
            "1,hehe,C200,xxxxx,多彩色,1546608910219,2018",
            "10,he,C200,xxxxx,多彩色,1546608910219,2018",
            "10,hehe,C100,xxxxx,多彩色,1546608910219,2018",
            "10,hehe,C200,llll,多彩色,1546608910219,2018",
            "10,hehe,C200,xxxxx,彩色,1546608910219,2018",
            "10,hehe,C200,xxxxx,多彩色,1546608910200,2018",
            "10,hehe,C200,xxxxx,多彩色,1546608910219,2019"
        })
    void should_set_evaluation_rv_to_null_when_update_evaluation_and_vehicle_required_fields(
        Integer mi, String bb, String cc, String mm, String pp,
        Long dd, String my) {
     // do somethings
}

這樣作你的測試只用寫一個,控制變量就在參數上了,很省事。
吐槽一下: @CsvSource(value ={...})不支持模版字符串,很無奈, 不能用 String.format()了。lua

相關文章
相關標籤/搜索