zoukankan      html  css  js  c++  java
  • 同时使用Junit4的@Parameterized参数化测试和Spring容器

    转载:http://www.jianshu.com/p/d191fe54915f

    整合Spring容器

    @SpringApplicationConfiguration(classes = Application.class)
    @WebAppConfiguration
    public class TestBase {
       @Autowired
       protected TedaCaseService tedaCaseService;
    
       private TestContextManager testContextManager;
    
       @Before
       public void setUpContext() throws Exception {
          this.testContextManager = new TestContextManager(getClass());
          this.testContextManager.prepareTestInstance(this);
       }
    
    }

    Junit4的参数化测试

    @RunWith(Parameterized.class):

    package meeting.httpapi.test;
    
    import com.teda.model.TedaCaseVo;
    import meeting.TestBase;
    import meeting.tool.SwordHttp;
    import meeting.tool.TedaTool;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junit.runners.Parameterized;
    import org.junit.runners.Parameterized.Parameters;
    
    import java.util.Arrays;
    import java.util.Collection;
    
    /**
     * @author jack
     */
    @RunWith(Parameterized.class)
    public class MeetingHttpApiTest extends TestBase {
    
        @Test
        public void testMeetingHttpApi() {
            TedaCaseVo tedaCaseVo = tedaCaseService.getTedaCase(tedaCaseId);
            String url = tedaCaseVo.getParamJsonStr();
            TedaTool.record(tedaCaseVo, SwordHttp.get(url), tedaCaseService);
        }
    
        @Parameters
        public static Collection data() {
            return Arrays.asList(new Object[][]{{22L}, {23L}, {24L},{25L}, {26L}, {27L}});
        }
    
        public MeetingHttpApiTest(Long tedaCaseId) {
            this.tedaCaseId = tedaCaseId;
        }
    
        protected Long tedaCaseId = 1L;
    
    }
    
    
    
    
    package meeting.tool;
    
    import com.teda.model.TedaCaseVo;
    import com.teda.service.TedaCaseService;
    
    import static org.junit.Assert.assertTrue;
    
    /**
     * @author jack
     */
    public class TedaTool {
        /**
         * @param tedaCaseVo
         * @param actualOutput
         */
        public static void record(TedaCaseVo tedaCaseVo, String actualOutput, TedaCaseService tedaCaseService) {
            print("tedaCaseVo===" + tedaCaseVo);
            print("actualOutput===" + actualOutput);
            tedaCaseVo.setActualOutput(actualOutput);
            String expectOutput = tedaCaseVo.getExpectOutput();
            boolean contains = actualOutput.contains(expectOutput);
            int state = contains ? 1 : 0;
            tedaCaseVo.setState(state);
            tedaCaseService.updateTedaCase(tedaCaseVo);
            assertTrue(contains);
        }
    
    
        public static void print(Object o) {
            System.out.println(o);
        }
    
        public static void clearData(TedaCaseVo tedaCaseVo, TedaCaseService tedaCaseService) {
            tedaCaseService.clearData(tedaCaseVo);
        }
    
    }



    文/东海陈光剑(简书作者)
    原文链接:http://www.jianshu.com/p/d191fe54915f
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    nginx能访问html静态文件但无法访问php文件
    LeetCode "498. Diagonal Traverse"
    LeetCode "Teemo Attacking"
    LeetCode "501. Find Mode in Binary Search Tree"
    LeetCode "483. Smallest Good Base" !!
    LeetCode "467. Unique Substrings in Wraparound String" !!
    LeetCode "437. Path Sum III"
    LeetCode "454. 4Sum II"
    LeetCode "445. Add Two Numbers II"
    LeetCode "486. Predict the Winner" !!
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6247601.html
Copyright © 2011-2022 走看看