今天学习了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 测试框架的使用 JUnit 是一个流行的单元测试框架,广泛应用于 Java 项目中,本文将详细介绍 JUnit 测试框架的使用,并提供了两个示例来帮助读者更好地理解和掌握 JUnit 的使用。 一、JUnit 测试框架的使用 ...
本实验“自动饮料机Junit测试”旨在帮助学生深入理解和应用单元测试,特别是在Java编程环境下。单元测试是一种针对程序代码最小可测试单元进行验证的方法,通常这个单元是函数或方法。Junit是Java领域广泛使用的单元...
3. Junit 的优点:由于 Junit 相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design 的实现有了现成的手段:用 Junit 写测试代码,写实现代码,运行测试,测试失败,...
5. **断言结果**:在JUnit测试中,我们可以使用`assertEquals()`等断言方法,验证私有方法执行后的结果是否符合预期。 下面是一个简单的例子,展示如何使用JUnit测试私有方法: ```java import org.junit.Test; ...
本压缩包文件"javaweb中.java文件测试需要的框架(junit测试).rar"显然是为了帮助开发者理解如何在Java Web项目中使用JUnit进行测试。 **JUnit框架详解** JUnit是一个基于注解的测试框架,它的核心功能包括: 1....
JUnit测试jar包通常包含了JUnit框架的核心库和其他可能的扩展或辅助库,使得开发人员可以在他们的项目中引入这些测试工具。这个压缩包很可能包含了JUnit的不同版本,例如JUnit4或JUnit5,以及可能的依赖如Hamcrest...
《Junit测试学习文档》 在软件开发过程中,单元测试是一项至关重要的工作,它能确保代码的正确性,提高代码质量,并为后续的维护和重构提供保障。Junit作为Java编程语言中最流行的单元测试框架,是每个Java开发者...
本文将详细介绍JUnit测试工具及其安装方法。 **一、JUnit简介** JUnit是一个开源的、基于Java的测试框架,主要用于编写和运行可重复的单元测试。它的设计理念是使测试成为开发过程中的一个自然部分,通过自动化测试...
这个"JUnit测试jar包.zip"文件很可能包含了JUnit库的jar文件,使得开发者能够在自己的项目中引入JUnit进行测试工作。 在Java开发中,单元测试是一种重要的软件质量保证手段,它通过编写小规模的独立测试代码来验证...
JUnit是Java编程语言中最常用的单元测试框架之一,它允许...总之,JUnit测试对于Java开发人员来说是一项必备技能,它可以帮助确保代码质量,预防bug,并在持续集成环境中提供反馈,以保证软件项目的稳定性和可靠性。
在这个名为"junit测试小demo"的压缩包文件中,我们可以预期它包含了一些关于如何使用Junit进行单元测试的示例代码或教程。 首先,让我们来理解一下Junit的基本概念。Junit是一个开源项目,由Eclipse基金会维护,...
例如,文件可能会讲解如何设置一个基本的JUnit测试类,通常这个类会继承自`junit.framework.TestCase`(对于较旧的JUnit版本)或者使用注解`@RunWith(JUnit4.class)`(对于JUnit 4及以上版本)。 测试类中的每个...
Junit测试.mp4
自己做了一个junit测试包,用起来很方便
在这个“junit测试案例程序”中,我们可以找到一些基本的JUnit测试用例示例,这对于初学者来说是极好的学习资源。 首先,JUnit的核心概念是测试类和测试方法。一个测试类通常对应于被测试的业务逻辑类,而测试方法...
《使用junit-volkswagen确保CI服务器上的JUnit测试通过》 在软件开发过程中,单元测试是一种重要的质量保证手段,它能够帮助开发者及时发现并修复代码中的错误。JUnit作为Java领域最常用的单元测试框架,为开发者...
JUnit 测试用例 calculate JUnit 测试用例 calculate 是一个简单的用例,旨在帮助掌握 JUnit 方法。该测试用例主要涉及到 JUnit 的基本使用、测试方法的编写、测试结果的分析等方面。 一、JUnit 简介 JUnit 是一...