Java学习十四
学习内容:
1.Junit
一、Junit实例演示步骤
1.引入jar包

junit包需要引入hamcrest-core包,否则会报错
2.测试如下代码
package com.junit.test;
public class Calculator {
private static int result; //静态变量,用于存储运行结果
public void add(int n){
result=result+n;
}
public void substract(int n){
result=result-1; //Bug:正确的应该是result=result-n
}
public void multiply(int n){
}//此方法尚未写好
public void divide(int n)throws Exception{
if(n==0)
throw new Exception("除数不能为0");
result=result/n;
}
public void square(int n){
result=n*n;
}
public void squareRoot(int n){
for(;;); //Bug:死循环
}
public void clear(){ //将结果清零
result=0;
}
}3.进行单元测试
点击测试项目,点击新建JUnit Test Case

选择测试方法

演示代码
package com.junit.test;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest {
public static Calculator c = new Calculator();
@Before
public void setUp() throws Exception {
}
@Test
public void testAdd() {
c.add(2);
c.add(2);
assertEquals(4,c.getResult());
}
@Test
public void testSubstract() {
c.substract(2);
assertEquals(2,c.getResult());
}
@Ignore
public void testMultiply() {
c.multiply(10);
}
@Test(expected = Exception.class)
public void testDivide() throws Exception {
c.divide(0);
}
@Test(timeout = 1000)
public void testSquareRoot() {
c.squareRoot(9);
}
}演示结果

其中将multiply方式用ignore注解忽略到了
另外一个测试代码演示带有数据库
待测试的项目:
package com.junit.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
public class Demo {
Connection conn=null;
public static void main(String[] args){
//运行之前需要创建数据库和表格,参考test1.sql文件
Demo d=new Demo();
Map param=new HashMap();
param.put("id",5);
param.put("name","amy");
param.put("password","123456");
d.insert(param);
d.getAll();
d.close();
}
public void createDb(){
String url="jdbc:mysql://localhost:3306/test1";
String name="com.mysql.jdbc.Driver";
String user="root";
String password="root";
try {
Class.forName(name);//指定连接类型
conn = DriverManager.getConnection(url, user,password);
System.out.println("连接成功");
//pst=conn.prepareStatement(sql);//准备执行语句
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
}
public int insert(Map param){
this.createDb();
int i=0;
String sql="INSERT INTO user(id,username,password) VALUES(?,?,?)";
PreparedStatement pstmt;
try{
pstmt=this.conn.prepareStatement(sql);
pstmt.setString(1,(String)param.get("id"));
pstmt.setString(2,(String)param.get("name"));
pstmt.setString(3,(String)param.get("password"));
i=pstmt.executeUpdate();
pstmt.close();
}catch(SQLException e){
e.printStackTrace();
}
return i;
}
public void getAll(){
String sql="select * from user";
PreparedStatement pstmt=null;
try{
pstmt=this.conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
int col=rs.getMetaData().getColumnCount();
System.out.println("=========================");
while(rs.next()){
for(int i=1;i<=col;i++){
System.out.print(rs.getString(i)+"\t");
if((i==2)&&(rs.getString(i).length()<8)){
System.out.print("\t");
}
}
System.out.println("");
}
System.out.println("=========================");
}catch(Exception e){
e.printStackTrace();
}
}
public void close(){
}
}测试代码
package com.junit.test;
import static org.junit.Assert.*;
import java.util.HashMap;
import java.util.Map;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class DemoTest {
public static Demo d = new Demo();
@Before
public void setUp() throws Exception {
}
@Before
public void testCreateDb() {
d.createDb();
}
@Test
public void testInsert() {
Map param=new HashMap();
param.put("id","2");
param.put("name","amy");
param.put("password","123456");
d.insert(param);
}
@Test
public void testGetAll() {
d.getAll();
}
@After
public void testClose() {
d.close();
}
}测试结果

打包所有要测试的类
package com.junit.test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
CalculatorTest.class,
DemoTest.class
})
public class TestAllForJunit {
} 相关推荐
shirleypaddy 2020-10-19
qingmumu 2020-10-19
lustdevil 2020-10-18
ganlulululu 2020-10-12
lustdevil 2020-08-03
lustdevil 2020-07-18
lustdevil 2020-06-25
lustdevil 2020-06-21
zhengzf0 2020-06-21
宿命java 2020-06-15
JackYin 2020-06-14
dongxurr 2020-06-07
snowphy 2020-06-06
zhengzf0 2020-05-28
81901836 2020-05-26
Julywhj 2020-05-26