java 常用测试框架
来源:互联网 发布:论持久战读书笔记 知乎 编辑:程序博客网 时间:2024/06/05 18:54
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 beforeSuitein beforeTestin beforeClassin beforeMethodin test case 1in afterMethodin beforeMethodin test case 2in afterMethodin afterClassin afterTestin 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. 客户端请求模拟
spring RestTemplate
RestTemplate 是用来在客户端访问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 企业应用
1 0
- java 常用测试框架
- java 常用测试框架
- java 常用测试框架
- 常用测试框架
- android 常用测试框架
- 7个常用的Java测试工具和框架
- 常用的自动化测试框架
- Java测试框架Junit
- Java web框架测试
- Java 线程测试框架
- JAVA JUnit测试框架
- java测试Junit框架
- Java JUnit4测试框架
- java测试框架-junit4
- Java测试框架
- java 常用日志框架
- java常用框架概述
- java web 常用框架
- 原码 反码 补码
- Java 开发项目管理工具
- android开发之动画的详解 整理资料 Android开发程序小冰整理
- mysql数据库表的基本操作
- oracle行转列(连接字符串函数)
- java 常用测试框架
- 深入分析JavaWeb Item27 -- JDBC学习入门
- 项目1——验证算法
- 链路
- Smart L 系列产品解决方案
- 如何做到带HINT的Spinner??
- 【《数据结构》2015-2016学年上学期总结】
- http
- Android笔记(6) ---ProgressBar和ProgressDialog的使用