java 经常使用測试框架
1. 经常使用单元化測试框架 junit4 , TestNG
能够通过注解 @Before @After @BeforeClass @AfterClass 分别作方法与类级的初始化与结束动作。
testNG演示样例:
public class TestngAnnotation {
// test case 1
@Test
public void testCase1() {
System.out.println("in test case 1");
}
// test case 2
@Test
public void testCase2() {
System.out.println("in test case 2");
}
@BeforeMethod
public void beforeMethod() {
System.out.println("in beforeMethod");
}
@AfterMethod
public void afterMethod() {
System.out.println("in afterMethod");
}
@BeforeClass
public void beforeClass() {
System.out.println("in beforeClass");
}
@AfterClass
public void afterClass() {
System.out.println("in afterClass");
}
@BeforeTest
public void beforeTest() {
System.out.println("in beforeTest");
}
@AfterTest
public void afterTest() {
System.out.println("in afterTest");
}
@BeforeSuite
public void beforeSuite() {
System.out.println("in beforeSuite");
}
@AfterSuite
public void afterSuite() {
System.out.println("in afterSuite");
}
}
其运行顺序为
in beforeSuite
in beforeTest
in beforeClass
in beforeMethod
in test case 1
in afterMethod
in beforeMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite
对于測试类较多时。能够指定需測试的类 使用打包測试
@RunWith(Suite.class) //指定suit測试运行器
@Suite.SuiteClasses({Junit4TimeoutTest.class,Junit4ExceptionTest.class})
public class Junit4SuiteTest {
}
如此对 Junit4TimeoutTest 与 Junit4ExceptionTest 进行打包測试。无需一个个分别測试。
2. mockito 模拟对象,并做交互验证
mock 能够mock接口和实现类
verify 验证过程是否被调用
Sample mockedSample = mock(Sample.class);//能够是接口或者是实现类
//验证交互
when(mockedSample.getName()).thenReturn("sample");
verify(mockSampleService, atMost(1)).getName(); // 验证方法之多调用了1次
3. Unitils
能够通过模块化的配置。集成 spring, db (MYSQL , HIBERIATE) 以及 各种第三方測试框架(junit 4, testNG)
4. 測试web层
spring mock中 为一些依赖于容器的接口提供了模拟类,能够使用户在不启动容器的情况下 运行单元測试。
org.springframework.mock.jndi 为jndi spi提供模拟类。摆脱对java ee容器的依赖
org.springframework.mock.web 为servlet api接口提供模拟类(HttpServletRequest, ServletContext),脱离servlet容器測试
5. client请求模拟
spring RestTemplate
RestTemplate 是用来在client訪问web服务的类。
@Before
public void init() {
driver = new HtmlUnitDriver(); //IE
}
@Test
public void loginCheck(){
//全然装载页面后将控制返回给測试脚本
driver.get("http://localhost/index.html");
//element = driver.findElement(By.xpath( "//input[@id=’xxx’]" ));
WebElement userName = driver.findElement(By.name("userName"));
WebElement password = driver.findElement(By.name("password"));
//不论什么页面元素都能够调用sendKeys,
userName.sendKeys("tom");
password.sendKeys("1234");
//提交表单
driver.findElement(By.id( "loginBtn" )).click();
//driver.findElement(By.id( "submit" )).submit(); 要求element必须在表单中。否则抛出NoSuchElementException
//验证返回的主页面 main.jsp
assertThat(driver.getTitle(), equalTo("this's title"));
assertThat(driver.getPageSource(), containsString("tom"));
WebElement body = driver.findElement(By.xpath( "//body" ));
assertThat(body.getText(), containsString("tom,welcome"));
}
上述演示样例引子spring3.x 企业应用
java 经常使用測试框架的更多相关文章
- MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...
- hibernate 单元測试框架
hibernate在写数据库配置文件时很的不确定,必须进行必要的測试保证数据库结构的正确性.所以能够应用junit进行測试. 使用junit很easy,eclipse仅仅须要右键项目新建一个junit ...
- Robotium双client測试框架
互联网的本质就是信息交换.移动互联网更是如此, 所以很多移动互联网的服务类应用中有着身份地位不同的两种用户(比如:交易中的买家和卖家, 教学中的老师和学生, 打车中的车主和乘客).近期的工作是给公司的 ...
- python的unittest測试框架的扩展浅谈
非常多时候測试框架须要依据測试数据来自己主动生成測试用例脚本,比方接口測试,通过不同參数构建组合去请求接口,然后验证返回结果.假设这样能通过配置excel数据来驱动測试.而不用去写一大堆的測试用例脚本 ...
- Google开源单元測试框架Google Test:VS2012 配置
由题目可知,Google Test(简称gtest)是Google公布的一个开源C/C++測试框架,被应用于多个开源项目及Google内部项目中,包括Chrome浏览器.LLVM编译器架构.Proto ...
- 基于QTP的自己主动化測试框架介绍
继前面用了七章介绍了基于QTP的自己主动化測试框架,以下再用几个视频再补充一下. 视频一:基本框架特点介绍说明 .框架的特点从正反两面进行了分析以及主要思想 http://v. ...
- Robot Framework自己主动化測试框架之我见
一些自己主动化測试现状: 盲目的去做自己主动化,终于以失败告终. 觉得是能提高效率的事情.却推广不下去: 事实上上述问题产生的原因是: 自己主动化測试案例稳定性不高,可维护性比較差: 自己主动化測试工 ...
- Windows环境搭建Web自己主动化測试框架Watir(基于Ruby)
web自己主动化測试一直是一个比較迫切的问题 图1-1 须要安装的工具 http://railsinstaller.org/ 由于安装Ruby还须要用到其它的一些开发工具集.所以建议从站点http:/ ...
- java的junit測试
在实际的开发中不仅须要断点调试.语句输出的方法进行程序的调试,也须要单元測试. 在java中的junit的測试方法通常是在要測试的方法上面加入@Test.@ Before.@After,@Before ...
随机推荐
- STM32CubeMx的使用分享
1. 新建立工程(以F103ZET6为例) 2. 配置引脚(以PA0为例) 3. 配置外设(以串口为例) 4. 配置时钟 5. 外设.GPIO.中断初始化 6. 生成工程 7. 添加自己的代码 8 ...
- 【Codeforces Round #476 (Div. 2) [Thanks, Telegram!] B】Battleship
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 暴力枚举船的左上角. 然后统计每个点被覆盖次数就好. [代码] #include <bits/stdc++.h> #de ...
- Nginx 实现反向代理
Nginx 实现反向代理 两个域名指向同一台 Nginx 服务器,用户访问不同的域名显示不同的网页内容 两个域名分别是 www.test1.com www.test2.com 1.准备工作 下载及安装 ...
- 纯文本中识别URI地址并转换成HTML
问题 有一段纯文本text, 欲将其插入DOM节点div中. text中可能有超链接, 邮件地址等. 假设有, 识别之. 分析 假设仅仅是纯文本, 插入div中, 仅仅要将div.innerText设 ...
- BZOJ 2005 [Noi2010]能量採集 (容斥)
[Noi2010]能量採集 Time Limit: 10 Sec Memory Limit: 552 MB Submit: 2324 Solved: 1387 [id=2005"> ...
- JDBC-Statement 对象
Statement 对象 一旦我们获得了数据库的连接,我们就可以和数据库进行交互.JDBC 的 Statement,CallableStatement 和 PreparedStatement 接口定义 ...
- 用了一天的时间,linux下expect实现ssh自己主动登录server记,歧视下网上各种抄来抄去残段子
由于要对客户方的快30个项目进行特别有顺序的重新启动,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的能够. 没有一段是能够正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自己主 ...
- Educational Codeforces Round 6 B. Grandfather Dovlet’s calculator 暴力
B. Grandfather Dovlet’s calculator Once Max found an electronic calculator from his grandfather Do ...
- ES设置查询的相似度算法
similarity Elasticsearch allows you to configure a scoring algorithm or similarity per field. The si ...
- sicily 题目分类
为了方便刷题,直接把分类保存下来方便来找. 转自:http://dengbaoleng.iteye.com/blog/1505083 [数据结构/图论] 1310Right-HeavyTree笛卡尔树 ...