• 同时使用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
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    Oracle与MySQL的几点区别
    MySQL使用Union创建视图报错
    MySQL指定mysqld启动时所加载的配置文件
    MySQL使用位运算
    django rest framework(3)
    Django Rest Framework(2)
    Django 之缓存
    RESTful API
    restful framework 认证源码流程
    其他排序
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6247601.html
Copyright © 2020-2023  润新知