junit测试

今天学习了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);

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值