转载:http://www.jianshu.com/p/d191fe54915f

整合Spring容器

  1. @SpringApplicationConfiguration(classes = Application.class)
  2. @WebAppConfiguration
  3. public class TestBase {
  4. @Autowired
  5. protected TedaCaseService tedaCaseService;
  6. private TestContextManager testContextManager;
  7. @Before
  8. public void setUpContext() throws Exception {
  9. this.testContextManager = new TestContextManager(getClass());
  10. this.testContextManager.prepareTestInstance(this);
  11. }
  12. }

Junit4的参数化测试

@RunWith(Parameterized.class):

  1. package meeting.httpapi.test;
  2. import com.teda.model.TedaCaseVo;
  3. import meeting.TestBase;
  4. import meeting.tool.SwordHttp;
  5. import meeting.tool.TedaTool;
  6. import org.junit.Test;
  7. import org.junit.runner.RunWith;
  8. import org.junit.runners.Parameterized;
  9. import org.junit.runners.Parameterized.Parameters;
  10. import java.util.Arrays;
  11. import java.util.Collection;
  12. /**
  13. * @author jack
  14. */
  15. @RunWith(Parameterized.class)
  16. public class MeetingHttpApiTest extends TestBase {
  17. @Test
  18. public void testMeetingHttpApi() {
  19. TedaCaseVo tedaCaseVo = tedaCaseService.getTedaCase(tedaCaseId);
  20. String url = tedaCaseVo.getParamJsonStr();
  21. TedaTool.record(tedaCaseVo, SwordHttp.get(url), tedaCaseService);
  22. }
  23. @Parameters
  24. public static Collection data() {
  25. return Arrays.asList(new Object[][]{{22L}, {23L}, {24L},{25L}, {26L}, {27L}});
  26. }
  27. public MeetingHttpApiTest(Long tedaCaseId) {
  28. this.tedaCaseId = tedaCaseId;
  29. }
  30. protected Long tedaCaseId = 1L;
  31. }
  32. package meeting.tool;
  33. import com.teda.model.TedaCaseVo;
  34. import com.teda.service.TedaCaseService;
  35. import static org.junit.Assert.assertTrue;
  36. /**
  37. * @author jack
  38. */
  39. public class TedaTool {
  40. /**
  41. * @param tedaCaseVo
  42. * @param actualOutput
  43. */
  44. public static void record(TedaCaseVo tedaCaseVo, String actualOutput, TedaCaseService tedaCaseService) {
  45. print("tedaCaseVo===" + tedaCaseVo);
  46. print("actualOutput===" + actualOutput);
  47. tedaCaseVo.setActualOutput(actualOutput);
  48. String expectOutput = tedaCaseVo.getExpectOutput();
  49. boolean contains = actualOutput.contains(expectOutput);
  50. int state = contains ? 1 : 0;
  51. tedaCaseVo.setState(state);
  52. tedaCaseService.updateTedaCase(tedaCaseVo);
  53. assertTrue(contains);
  54. }
  55. public static void print(Object o) {
  56. System.out.println(o);
  57. }
  58. public static void clearData(TedaCaseVo tedaCaseVo, TedaCaseService tedaCaseService) {
  59. tedaCaseService.clearData(tedaCaseVo);
  60. }
  61. }
文/东海陈光剑(简书作者)
原文链接: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. ASP.NET收发邮件

    在.NET中常见到在线发邮件的实例,网站加上这个功能可以方便站长与用户的交流. NET 中发邮件有时候会用到IIS组件中的邮件服务器,不过复杂.对虚拟主机的配置也较麻烦, 也可用第三方组件比如Jmai ...

  2. windows 下 putty 登陆服务器 显示matlab图形界面

    本文需要下载 putty.exe 和 pscp.exe :http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Xming 主 ...

  3. MySQL数据库之------DOS命令行的基本操作

    1.   进入D盘的如下路径: 按住   ctrl+shift  ,右键,选择在此处打开命令行窗口.出现图2.   图   1  图 2 2. .     3.   图 3  4.    图 4   ...

  4. iOS 汉字拼音

    获取汉字的拼音 #import <Foundation/Foundation.h> @interface NSString (Utils) /** *  汉字的拼音 * *  @retur ...

  5. 新建STM32工程

    1) 2)保存 3)选择公司和芯片的型号,STM32F103C8T6,64kB Flash, 20kB SRAM. 4)手动添加启动代码 5)新建如下文件夹 6)回到工程,选中target,右键Add ...

  6. js中排序问题总结

    js的排序中通常使用到sort函数,可以用冒泡排序,插入排序,快速排序,希尔排序,系统方法等方法,本文结束后分享一个用着排序算法的链接,感兴趣可以了解了解. 1.常见的对一般数组进行排序,代码如下: ...

  7. C#中的选择语句

    一.选择语句 if,else if是如果的意思,else是另外的意思,if'后面跟()括号内为判断条件,如果符合条件则进入if语句执行命令.如果不符合则不进入if语句.else后不用加条件,但是必须与 ...

  8. GitLab服务器搭建及配置

    一.服务器环境 操作系统:CentOS release 6.5 (Final) GitLab版本: GitLab-shell:2.0.1 Ruby version: ruby 2.1.2p95 (20 ...

  9. CE取系统时间值

    取时间值: void GetTime() { //取时间值 SYSTEMTIME st = {}; // 时间结构体 GetLocalTime(&st); // 把获取的系统时间信息存储到SY ...

  10. 谈事件冒泡(Bubble)和事件捕捉(capture)

    事件的发生顺序 假设在一个元素中又嵌套了另一个元素并且两者都有一个onClick事件处理函数(event handler).如果用户单击元素2,则元素1和元素2的单击事件都会被触发.但是哪一个事件先被 ...