转载: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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

同时使用Junit4的@Parameterized参数化测试和Spring容器的更多相关文章

  1. JUnit实战(1) - JUnit起步(Parameterized参数化测试)

    创建Java Project项目,项目名称:ch01-jumpstart Calculator.java public class Calculator { public double add(dou ...

  2. Junit4参数化测试实现程序与用例数据分离

    http://touchfu.iteye.com/blog/732930 现状:你是不是还在为自己的TestCase代码杂乱无章而苦恼,咎其根本还在于针对不同的用例,输入参数和mock信息的组装全部作 ...

  3. 利用Junit4进行程序模块的测试,回归测试

    ①在你的工程里导入JUnit4的包 ②右击创建JUnit测试类,在测试类中编写测试代码即可. JUnit 目前需要掌握的有一下几点: Fixture系列:BeforeClass,AfterClass, ...

  4. Spring - 初始化spring容器

    2016.01.12 学习linux内核的过程中发现变相的提升了自己的工程能力.以前觉得spring这些东西很复杂麻烦.然而,学了linux内核再看这些东西,发现好简单. 学习spring首先就要学习 ...

  5. 用JUnit4进行参数化测试

    参数化测试是一个JUnit 3不具备的功能. 基本使用方法 @RunWith 当类被@RunWith注解修饰,或者类继承了一个被该注解修饰的类,JUnit将会使用这个注解所指明的运行器(runner) ...

  6. JUnit4参数化测试实例

    在JUnit中,可以同时使用@RunWith 和 @parameter 注解来为单元测试传递参数. 注意: 在Eclipse中因为版本问题,可能无法使用@parameters(name = " ...

  7. JUnit5学习之六:参数化测试(Parameterized Tests)基础

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. JUnit5学习之七:参数化测试(Parameterized Tests)进阶

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. Junit4进行参数化测试

    @RunWith, 当类被@RunWith注解修饰,或者类继承了一个被该注解修饰的类,JUnit将会使用这个注解所指明的运行器(runner)来运行测试,而不是JUnit默认的运行器. 要进行参数化测 ...

随机推荐

  1. shell命令

    1:操作系统:人--使用-->shell(或应用程序)--呼叫-->kernel(核心)--->硬件2:查看shell的种类:# cat /etc/shells3:而这个登入系统的 ...

  2. 苹果Home键恢复(无工具篇)

    无工具法: 弹指神功.用手指轻轻弹Home,过了一阵子后可能会出现白色污垢,其后再重覆“弹”,直至正常为止.(亲测可用) 软件调试法.首先,打开任意一款应用程序,按住电源开关几秒钟,直到屏幕出现滑动关 ...

  3. 我对git认识

        Git --- The stupid content tracker, 傻瓜内容跟踪器.Linus Torvalds 是这样给我们介绍 Git 的. Git 是用于 Linux内核开发的版本控 ...

  4. PHP代码实用片段

    一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); ...

  5. windows下使用Git命令汇总

    这里只是简单汇总下Git主要命令,方便记忆:汇总的不好,请各位包容,谢谢!想看详细讲解,推荐廖雪峰大神的教程,地址如下:http://www.liaoxuefeng.com/wiki/00137395 ...

  6. UVa 673 平衡的括号

    题意:给出包含"()"和"[]"的括号序列,判断是否合法. 用栈来完成,注意空串就行. #include<iostream> #include< ...

  7. LEETCODE —— Maximum Subarray [一维DP]

    Maximum Subarray Find the contiguous subarray within an array (containing at least one number) which ...

  8. LEETCODE —— Linked List Cycle [Floyd's cycle-finding algorithm]

    Linked List Cycle Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it ...

  9. clang编译器简介

    本文部分内容引用: 中文维基百科. 结构化编译器前端--clang介绍. 什么是clang编译器? clang是LLVM编译器工具集的一个用于编译C.C++.Objective-C的前端.LLVM项目 ...

  10. Linux中MySQL的基本操作

    1. 用root用户登录mysql mysql -u root -p 2. 查看database show databases; 3. 查看table use database名 show table ...