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
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    scp(secure copy)安全拷贝
    rsync 远程同步工具
    Ansible:遇到错误 "sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting
    kafka数据分区的四种策略
    SwitchHosts—hosts管理利器
    HDU 2577 How to Type (字符串处理)
    HDU 1465 不容易系列之一 (错排公式+容斥)
    FZUOJ 2205 据说题目很水 (无三元环图最大边数)
    约瑟夫环问题 ( 最简单的数学解法)
    POJ 3279 Fliptile ( 开关问题)
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6247601.html
Copyright © 2011-2022 走看看