java程序测试框架_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. 客户端请求模拟

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 企业应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值