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
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    主流液晶显示器尺寸参数
    不能访问网络位置的解决方法(转)
    打开Word提示你正试图运行的函数包含有宏或需要宏语言支持的内容
    教你如何防“蹭网”
    ASA数据库瘦身(原创)
    多种解决:“Word无法启动转换器mswrd632.wpc”方法
    百兆线与千兆线网线制作方法
    linux常用命令
    DefaultIfEmpty
    实现手机发送验证码 进行验证
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6247601.html
Copyright © 2011-2022 走看看