同时使用Junit4的@Parameterized参数化测试和Spring容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 同时使用Junit4的@Parameterized参数化测试和Spring容器整合之剑 2016.4.30整合Spring容器@SpringApplicationConfiguration(classes = Application.

同时使用Junit4的@Parameterized参数化测试和Spring容器整合


之剑 2016.4.30

整合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);
    }

}
相关文章
|
2月前
|
XML Java 数据格式
编织Spring魔法:解读核心容器中的Beans机制【beans 一】
编织Spring魔法:解读核心容器中的Beans机制【beans 一】
42 0
|
1月前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
8 0
|
2月前
|
XML Java 数据格式
Spring IoC容器初始化过程(xml形式)
Spring IoC容器初始化过程(xml形式)
46 0
|
1月前
|
Java Spring
使用spring实现邮件的发送(含测试,源码,注释)
使用spring实现邮件的发送(含测试,源码,注释)
7 0
|
1月前
|
Java 容器 Spring
【spring(一)】核心容器总结
【spring(一)】核心容器总结
|
1月前
|
Java 开发者 容器
【Java】深入了解Spring容器的两个关键组件
【Java】深入了解Spring容器的两个关键组件
10 0
|
1月前
|
XML Java 数据格式
Spring 的奇幻起源:从 IoC 容器到 Bean 的魔法世界 (下)
Spring 的奇幻起源:从 IoC 容器到 Bean 的魔法世界
|
1月前
|
XML Java 数据格式
Spring 的奇幻起源:从 IoC 容器到 Bean 的魔法世界 (上)
Spring 的奇幻起源:从 IoC 容器到 Bean 的魔法世界 (上)
|
2月前
|
前端开发 Java 数据格式
10个知识点让你读懂spring MVC容器
随着 Spring Boot 逐步全面覆盖到我们的项目之中,我们已经基本忘却当年经典的 Servlet + Spring MVC 的组合,那让人熟悉的 web.xml 配置。而本文,我们想先抛开 Spring Boot 到一旁,回到从前,一起来看看 Servlet 是怎么和 Spring MVC 集成,怎么来初始化 Spring 容器的。
20 1
|
2月前
|
测试技术 数据库
参数化单元测试
参数化单元测试
17 0