`
yun342173024
  • 浏览: 72974 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

junit测试

    博客分类:
  • java
 
阅读更多
今天学习了junit测试(基于注解)
package com.own.cal;
public interface Calculator {
  
	double calculatorSalary(Position position);
	
}


package com.own.cal;
public class CalculatorImpl implements Calculator {

	@Override
	public double calculatorSalary(Position position) {
		// TODO Auto-generated method stub
		double salary = 2000;
		switch(position){
		case BOSS:
			salary = 100000;
			break;
		case EMPLOYEE:
			salary = 3000;
			break;
		case MANAGER: salary = 50000;
		   break;
		default:salary = 2000;
		break;
	  }
     return salary;		
		
	}

}


package com.own.cal;

public enum Position {

  EMPLOYEE,MANAGER,BOSS
	
}

package com.own.cal;

public class RealCalculator {
    
	//计算工资
	private Calculator calculator;
	//职位
	private Position position;
	public Calculator getCalculator() {
		return calculator;
	}
	public void setCalculator(Calculator calculator) {
		this.calculator = calculator;
	}
	public Position getPosition() {
		return position;
	}
	public void setPosition(Position position) {
		this.position = position;
	}
	
	/*
	 * 计算工资的方法
	 */
	public double calculateSalary(){
		if(calculator == null){
			throw new CalculatorNullException("计算工资不能为空");
		}
		if(position == null){
			throw new PositionNullException("职位不能为空");
		}
		
		return calculator.calculatorSalary(position);
	}
	
	
}




package com.own.cal;

public class CalculatorNullException extends RuntimeException {
   
	public CalculatorNullException(String message){
		super(message);
	}
	
	
}



package com.own.cal;

public class PositionNullException extends RuntimeException {
   
	public PositionNullException(String message){
		super(message);
	}
    
	
	
}

 
package com.easymock.test;

import static junit.framework.Assert.*;

import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;

import com.own.cal.Calculator;
import com.own.cal.CalculatorImpl;
import com.own.cal.CalculatorNullException;
import com.own.cal.Position;
import com.own.cal.RealCalculator;

public class RealCalculatorTest {
  
	private Calculator mock;
	private RealCalculator realCal;
	
	@Before
	public void setUp(){
	   	//创建模拟对象
		mock = EasyMock.createMock(Calculator.class);
		
		realCal = new RealCalculator();
	}
	
	//测试计算
	
	@Test
	public void testCalculateSalary(){
	    
	
	
		realCal.setCalculator(new CalculatorImpl());
		realCal.setPosition(Position.BOSS);
		
		double actual = realCal.calculateSalary();
	    assertEquals(100000.0, actual,1.0);
	    realCal.setPosition(Position.EMPLOYEE);
	    actual = realCal.calculateSalary();
	    assertEquals(3000,actual,0.8);
	 
	}
	
	//测试抛出未设置计算器异常
	
	@Test(expected=CalculatorNullException.class)
	public void testCalculatorNullException(){
		   // realCal.setCalculator(new CalculatorImpl());
		    realCal.setPosition(Position.BOSS);
			double actual = realCal.calculateSalary();
		    assertEquals(100000.0, actual,1.0);
	}
	
	//测试方法的运行的时间
	
	@Test(timeout=50)
	public void testCalculatorRuntime(){
		    
		
		    realCal.setCalculator(new CalculatorImpl());
		    realCal.setPosition(Position.BOSS);
			double actual = realCal.calculateSalary();
		    try {
				Thread.sleep(10);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch 				e.printStackTrace();
			}
			assertEquals(100000.0, actual,1.0);
		
	}
	
	
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics