今天学习了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);
}
}
分享到:
相关推荐
junit测试 test txt file
JUNIT测试
Myeclipse中的JUnit测试详细
Junit 通常用于那些有明确返回值的方法的测试...因此我们要使用junit测试void方法,必须找到一个有实际返回值的 方法来暂时替代void方法,但此方法只作为被测void方法的入口和出口,测试程序所调用的仍旧是原void方法。
软件测试JUnit测试框架的使用实验1报告
Junit测试jar包
Junit测试.mp4
javaweb中.java文件测试需要的框架(junit测试).rar
自己做了一个junit测试包,用起来很方便
JUnit测试代码示例,JUnit3的代码示例。
使用Eclipse进行Junit测试,junit类的创建
junit测试工具以及其安装方法。junit.rar/
因此我们要使用junit测试void方法,必须找到一个有实际返回值的方法来暂时替代void方法,但此方法只作为被测void方法的入口和出口,测试程序所调用的仍旧是原void方法。为了实现这种测试方式,我们按照如下步骤进行...
JUnit测试jar包
junit测试测试junit测试测试junit测试测试junit测试测试
通过单元测试工具(Junit)支持,使学生对单元测试中测试用例的设计原则,设计方法进行了解和掌握。
Junit,测试Junit,测试案例使用
软件测试报告Junit的单元测试,框架的使用情况,适合正在学习的同学!
Junit测试
小的junit的测试实例,mock测试,对spring mvc中“c”的测试